Próbuję powiązać właściwość Visibility obiektu TextBlock
, która jest przechowywana w ItemTemplate dla ListView z właściwością IsSelected nadrzędnego obiektu ListViewItem obiektu TextBlock.Powiązanie z właściwością IsSelected obiektu nadrzędnego ListViewItem
Z tym znacznikiem, TextBlock jest zawsze widoczny.
<ListView x:Name="ItemListView" ItemsSource="{Binding Path=Accounts}" Margin="60,0,0,10" Grid.Row="1" Grid.Column="0">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100">
</ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Width="100" Height="100" Grid.Column="0"></Image>
<StackPanel Grid.Column="1">
<TextBlock Text="{Binding Path=Account.Name}"
FontSize="24" Margin="5,0,0,0" TextWrapping="Wrap" />
</StackPanel>
<TextBlock Grid.Column="3" VerticalAlignment="Bottom"
Visibility="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=IsSelected, Converter={StaticResource boolConverter}, Mode=OneWay}">
Show More Details...
</TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Uwagi: 1. W przypadku to czyni wszelkie różnice, to WinRT; aplikacja Metro napisana w języku C#. 2. boolConverter
to dość standardowy konwerter wydaje się działać poprawnie.
Not sure about WinRT, ale TemplatedParent dotyczy ControlTemplates zamiast DataTemplates. Try Mode = FindAncestor, AncestorType = ListViewItem. –
Czy wyświetla błędy wiązania w widoku wyjściowym, prawdopodobnie TemplatedParent tutaj byłoby ContentPresenter, a nie ListView – whoisthis
Wyliczenie Windows.UI.Xaml.Data.RelativeSourceMode nie ma (lub nie wydaje się!) Mieć wartość dla FindAncestor , niestety – Rob