【发布时间】:2011-09-24 11:44:54
【问题描述】:
我有一个 WPF 4.0 应用程序,我正在使用 WPF DataGrid。我想要的是使用视图上的导航按钮来更改 DataGrid 中的 SelectedItem,而不是让用户通过单击 DataGrid 来更改 SelectedItem。我在 ViewModel 中使用 ICollectionView 作为 DataGrid 的 ItemsSource。这是我目前所拥有的:
NextCommand (ViewModel):
DefaultView.MoveCurrentToNext(); // DefaultView is an ICollectionView
SelectedItem = DefaultView.CurrentItem as MyProperty;
数据网格(视图):
<DataGrid ItemsSource="{Binding Path=DefaultView}"
SelectedItem="{Binding Path=SelectedItem}"
IsSynchronizedWithCurrentItem="True">
...
</DataGrid>
导航按钮很好用……但是,我不想让用户单击 DataGrid 来更改 SelectedItem。关于如何做到这一点的任何想法?我玩过 DataGrid_SelectionChanged 事件,但问题是 SelectedItem 上的绑定会在此事件触发之前更新 ViewModel。我希望 SelectedItem 不会更改两次(用户单击时一次,将其设置回原始值时两次)。如果需要,我可以使用后面的代码...
【问题讨论】: