绑定到WPF DataGrid中的选定项目

时间:2013-02-12 11:36:10

标签: wpf mvvm datagrid selecteditem

我想知道DataGrid中的所选项目是谁(将它们插入ViewModel中的集合)。

当我绑定到所选项目时,仅当我单击行(1行)时才更改,但是当我按住Ctrl +单击它仍然是第一项时,为什么会发生这种情况并且可以链接所有选定的项目?

这是我的DataGrid:

<DataGrid SelectedIndex="{Binding SelectedXIndex}" DataContext="{Binding XViewModel}" SelectedItem="{Binding CurrentX}" ItemsSource="{Binding ListX, Mode=TwoWay}" AutoGenerateColumns="False" >
    <DataGrid.Columns>
     ...
    </DataGrid.Columns>
</DataGrid>

在XViewModel中我有:

所选索引的

SelectedXIndex(int)

CurrentX(类x的对象)用于当前选择

ListX - 第x类列表

3 个答案:

答案 0 :(得分:1)

您是否查看了“SelectedItems”(非SelectedItem)集合?

答案 1 :(得分:0)

我发布了一种技术,只需通过扩展DataGrid就允许对WPF DataGrid的SelectedItems属性进行只读绑定。您可以在https://stackoverflow.com/a/16953833/62278

看到我的回答

答案 2 :(得分:-1)

我提出的第一个建议没有用。我出于历史原因离开了他们。

我终于认为问题在于你想要做的事情有点奇怪 - 或者容易出错。您希望能够选择多个,将绑定设置为SelectedItem(一个项目)。

我个人在xaml中根本没有绑定(当然除了ItemsSource)并且跟踪选择更改与后端代码中的selectionChanged事件。找到支持此方法的类似问题的链接here

希望您找到更好的解决方案

陈述:

这应该可以解决问题,因为您似乎将其视为单一模式选择Datagrid,但您没有明确地将其定义为:

<DataGrid SelectionMode="Single"

如果您希望选择模式为多个,则不应该绑定到SelectedIndex

我也想知道你为什么同时拥有SelectedIndex绑定和SelectedItem绑定。在任何情况下都只需要一个。

将SelectedItem绑定集SelectionMode保持为Extended并再次尝试