2012-07-28 40 views
0

我有一个dataGrid扩展的选择模式,所以我可以选择很多行。如何获取在扩展选择模式下选择的当前DataGrid行?

我有一个样式触发器,有一个多值转换器,根据一些条件设置行的背景颜色。

那么,在我的探测中,我传递了三个参数:ItemsSource,SelectedItemsselectedItem。我注意到以下行为:

当我选择第一行时,ItemsSource包含dataGrid的所有行。这是对的。 SelectedItems有0项,selectedItem为空。但是,不做任何事情,代码在转换器中第二次输入,在这种情况下SelectedItem是在dataGrid中选择的项目,但SelectedItems没有项目。

当我选择第二行时,SelectedItems有一个项目,dataGridselectedItem的第一个选定行也有第一行。在这种情况下,代码不会在转换器中第二次进入。

当我选择第三行时,SelectedItems有两项,第一行和第二行被选中,但不是第三行。 SelectedItem选择了第一行。

所以我看到SelectedItem总是选择第一行,SelectedItems有n-1个选定的行。

但我怎么知道当前选中的行是什么?新排?

+0

清理问题。例如。 “但是,不做任何事,代码第二次进入转换器” – Paparazzi 2012-07-28 13:21:46

回答

2
<DataGrid SelectionMode="Extended" SelectionUnit="FullRow"></DataGrid> 

您的选择单位必须是FullRow。我希望这会有所帮助。

+0

是的,我已经以这种方式设置了这两个选项。 – 2012-07-28 15:51:35

+0

你可以请你显示你的XAML和转换器? – ethicallogics 2012-07-28 16:04:15

相关问题