2011-07-29 5 views
0

J'ai des difficultés à accéder à une grille ou à ses lignes (dans un contrôle ListBox), malgré la définition du nom de la grille ou de la ligne. J'ai l'intention de définir un nouveau MaxHeight à l'une de ses lignes quand un paramètre est passé d'une propriété navigable SharePoint au contrôle Silverlight.Accès et modification des propriétés de la ligne de grille dans le modèle de données

Comment puis-je obtenir l'effet désiré? Liaison peut-être?

@ Page.xaml:

<ListBox ItemsSource="{Binding}" DataContext="" x:Name="NewsList" SelectionChanged="NewsList_SelectionChanged" SelectionMode="Single" Width="580" Height="360" VerticalAlignment="Top" HorizontalAlignment="Center" > 
            <ListBox.ItemTemplate> 
             <DataTemplate >          
                           <Grid Height="110" Width="540" x:Name="StaffNewsBodyHeight"> 
                <Grid Height="110" Width="540"> 
               <Grid.RowDefinitions> 
                <RowDefinition Height="15" /> 
                <RowDefinition Height="{Binding StaffNewsBodyHeight}" /> 
                <RowDefinition Height="15" /> 
               </Grid.RowDefinitions>             <Grid.ColumnDefinitions> 
                 <ColumnDefinition Width="82" /> 
                 <ColumnDefinition Width="*" /> 
                </Grid.ColumnDefinitions>            

                <Border CornerRadius="2" BorderThickness="2" BorderBrush="Gray" Height="82" Width="82" Background="LemonChiffon" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.RowSpan="3" Grid.Column="0" >             
                 <Image Source="{Binding NewsThumbnail}" Style="{StaticResource ThumbNailPreview}" /> 
                </Border> 
                <TextBlock x:Name="NewsTitle" FontFamily="Arial" FontWeight="bold" TextDecorations="Underline" Text="{Binding Title}" Style="{StaticResource TitleText}" Grid.Row="0" Grid.Column="1"/>           
          <TextBlock x:Name="NewsBody" FontFamily="Arial" Text="{Binding NewsBody}" Margin="5" Style="{StaticResource DescriptionBlock}" Grid.Row="1" Grid.Column="1" /> 



                <StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="1" Margin="3,3,3,3"> 
                 <TextBlock Text="Published By:" HorizontalAlignment="Left" VerticalAlignment="Bottom" Foreground="Gray" FontWeight="Bold" FontSize="9" /> 
                 <TextBlock Text="{Binding PublishedBy}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Foreground="Gray" FontWeight="Bold" FontSize="9" /> 
                 <TextBlock Text="{Binding DatePublished}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Foreground="Gray" FontWeight="Bold" FontSize="9" />              
                </StackPanel>             
               </Grid>          
             </DataTemplate> 
            </ListBox.ItemTemplate> 
           </ListBox> 

@ Page.xaml.cs:

if (!string.IsNullOrEmpty(_setLength)) 
     {    
      StaffNews test = new StaffNews(); 

      //assign new height to gridrow of NewsBody 
      if (_setLength.Contains("_3")) 
       test.StaffNewsBodyHeight.Equals(200); 
     } 

Répondre

0

Je crois que StaffNews représente un élément dans la liste, à droite?

Dans ce cas, d'attribuer une valeur à une propriété, utilisez:

test.StaffNewsBodyHeight = 200; 

pour remplacer la dernière ligne de votre extrait.

[P.S. - StaffNewsBodyHeight est une propriété de dépendance définie dans StaffNews, n'est-ce pas?]

+0

Merci beaucoup btw. Trouvé une solution de contournement qui a fonctionné. Très appréciée! :) – brainsfrying

Questions connexes