【发布时间】:2012-06-21 20:15:44
【问题描述】:
我在 WPF 控件中有一些图像(位置)。每个图像都与该控件下方的 ListView 中的一个项目相关联。当用户点击一个位置时,我希望在ListView 中选择(并因此突出显示)相应的ListViewItem。同样,当用户点击一个ListViewItem时,我希望相应的位置被选中。
我可以完成一种行为或另一种行为,但我似乎无法让两者一起工作。
我有一个Style,它在选择位置时将IsSelected 属性设置为“true”:
<Style x:Key="PositionItem" TargetType="ListViewItem">
<Setter Property="IsSelected" Value="False" />
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource IsCurrentPositionConverter}">
<Binding RelativeSource="{RelativeSource Self}" Path="DataContext" />
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" Path="DataContext.CurrentBackplane.CurrentCard.CurrentPosition" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsSelected" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
在我的ListView 中,我为SelectionChanged 设置了一个处理程序:
private void Positions_SelectionChanged(object sender, SelectionChangedEventArgs e) {
var listView = sender as ListView;
if (listView == null) return;
var currentPos = listView.SelectedItem as IGraphicPositionViewModel;
if (currentPos == null) return;
if (currentPos != _ViewModel.CurrentBackplane.CurrentCard.CurrentPosition)
_ViewModel.CurrentBackplane.CurrentCard.CurrentPosition = currentPos;
}
问题是ListViewItem 的IsSelected 属性似乎与ListView 的SelectedItem 属性没有很好的相关性。
我可以使用其他属性或事件来同步这些属性吗?
【问题讨论】: