我想知道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类列表
答案 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并再次尝试