У меня есть ListView
и внутри этого другого ListView
. Всякий раз, когда я выбираю элемент в дочернем элементе ListView
, я хочу, чтобы родительский элемент был выбран в родительском ListView
. Пример:Как установить свойство другого элемента управления из установщика стиля
<Window>
<Window.Resources>
<!-- Parent ListView ItemsTemplate... Incomplete -->
<DataTemplate x:Key="parentItemTemplate">
<!-- Child ListView -->
<ListView SelectedItem="{Binding ChildSelectedItem}" ItemsSource="{Binding WhateverInParent}">
<ListView.Resources>
<Style TargetType="ListViewItem">
<Trigger Property="IsSelected" Value="True">
<!-- This is what I want to do, but ofc this doesn't work because it produces a compile error saying can't set TargetName in a setter -->
<Setter TargetName="parent" Property="SelectedValue" Value="{Binding DataContext, RelativeSource={RelativeSource AncestorType=ListView}}" />
</Trigger>
</Style>
</ListView.Resources>
</ListView>
</DataTemplate>
</Window.Resources>
<ListView ItemsTemplate="{StaticResource parentItemTemplate}" x:Name="parent" SelectedItem="{Binding ParentSelectedItem}" ItemsSource="{Binding Whatever}"/>
</Window>
Как это сделать? Предпочитаете, чтобы это было в XAML.
не может сделать это с помощью style..but почему вы хотите это сделать? и ListView не имеет свойства IsSelected. Чего вы хотите достичь? – Nitin
@nit: Потому что это требование пользователя. Ред. – nakiya