我有两个ListView
,每个都绑定到我的ViewModel中的特定集合,我希望能够全局选择一个项目。
每个ListView
都将SelectedItem
属性绑定到ViewModel中的同一属性。
我的问题如下:当我在ListView
中选择一个项目,然后在另一个ListView中选择另一个项目时,第一个项目保持选中状态。
我可以通过一些代码隐藏来实现这一点,但我想知道是否存在纯XAML解决方案。
XAML:
<ListView SelectionMode="Single" ItemsSource="{Binding Path=MyList1}" SelectedItem="{Binding Path=MySelectedItem}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView SelectionMode="Single" ItemsSource="{Binding Path=MyList2}" SelectedItem="{Binding Path=MySelectedItem}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:3)
我终于通过SelectedItem
替换SelectedValue
来实现它。
在这个用例中,两个属性具有相同的行为,但如果绑定的选定项不在列表中,则后者正确处理取消选择。
答案 1 :(得分:0)
您需要在Mode=TwoWay
中使用SelectedItem
。它应该工作。