2011-07-29 7 views
0

グリッドまたは行の名前を定義しているにもかかわらず、グリッドまたはその行にアクセスできません(リストボックス内)。いくつかのパラメータがSharePointのブラウズ可能なプロパティからSilverlightコントロールに渡されるときに、新しいMaxHeightをその行の1つに設定する予定です。データテンプレート内のグリッド行のプロパティへのアクセスと変更

私はどのように効果を得ることができますか?おそらくバインディング? Page.xaml.cs @

<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を@

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

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

答えて

0

私は右、StaffNewsはあなたのリストの中の項目を表していることを信じますか?その場合

、プロパティに値を割り当てるには、使用:

test.StaffNewsBodyHeight = 200; 

はスニペットの最後の行を交換します。

[P.S. - StaffNewsBodyHeightは従属プロパティがStaffNewsで定義されていますか?]

+0

ありがとうございます。うまくいく回避策が見つかりました。とても有難い! :) – brainsfrying

関連する問題