2015-02-04 1 views
0

나는 데이터로 성공적으로 업데이트 할 수있는 목록 상자를 가지고 있지만, 이제 나는 붕괴시키고 다른 것을 보이게하는 두 개의 특정 텍스트 블록에 액세스하려고합니다. 내가 PM_MLimitedBody의 된 본체를 숨기고 내가 가지고있는 ShowFullBody_Tap 이벤트 핸들러에 대한 PM_MFullBody의 TextBlock을 보여주고 싶은목록 상자에서 texblocks에 액세스하는 방법?

<ListBox Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" Name="myPM_MListBox" Margin="-5,0,-5,0" SelectionChanged="myPMListBox_SelectionChanged"> 
    <ListBox.ItemContainerStyle> 
    <Style TargetType="ListBoxItem"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> 
    </Style> 
    </ListBox.ItemContainerStyle> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <Grid Margin="0,0,0,0" HorizontalAlignment="Stretch"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="150" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Border Grid.Row="0" Grid.Column="0" Margin="5,0,0,0" Background="#FF009E49" BorderThickness="1" BorderBrush="#FF505050"> 
      <TextBlock Margin="5,5,5,5" Text="Message Date" FontSize="16" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Foreground="#FFFFFFFF" FontWeight="Normal" /> 
     </Border> 
     <Border Grid.Row="0" Grid.Column="1" Margin="0,0,5,0" Background="#FFEFEFEF" BorderThickness="1" BorderBrush="#FF505050"> 
      <TextBlock Margin="5,5,5,5" x:Name="PMMessagePubDate" Text="{Binding shdMsgPublishTime}" FontSize="16" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Foreground="#FF000000" FontWeight="Normal" /> 
     </Border> 
     <Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="5,0,5,0" Background="#FFEFEFEF" BorderThickness="1,1,1,0" BorderBrush="#FF505050"> 
      <TextBlock Margin="5,5,5,5" x:Name="PM_MLimitedBody" Text="{Binding shdMessageText}" FontSize="16" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Foreground="#FF000000" FontWeight="Normal" /> 
     </Border> 
     <Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="5,0,5,0" Background="#FFEFEFEF" BorderThickness="1,0,1,1" BorderBrush="#FF505050"> 
      <TextBlock Margin="5,5,5,5" x:Name="PM_MFullBody" Text="Show more..." FontSize="16" HorizontalAlignment="right" TextWrapping="Wrap" VerticalAlignment="Top" Foreground="Blue" FontWeight="Normal" Tapped="ShowFullBody_Tap" /> 
     </Border> 
     </Grid> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

: 여기 내 XAML입니다. 하지만 내 .cs 파일에서 이러한 textblok의 Visibility 속성에 액세스 할 수없는 것 같습니다. 내 .cs 파일에서 이러한 textblock의 가시성 속성에 액세스 할 수있는 방법이 있습니까?

답변

0

ShowFullBody_Tap의 발신자는 해당 이벤트를 정의하는 TextBox이 될 수 있습니다. VisualTreeHelper.GetParent(...)을 사용하여 Border을 얻은 다음 Grid을 입력 한 다음 Grid.Children을보고 텍스트 상자가있는 다른 테두리를 찾습니다.

관련 문제