具有一项的 DataGrid 的 WPF SelectedItem 不起作用

问题描述 投票:0回答:0

当只有一个项目时,WPF DataGrid 的 SelectedItem 面临一个奇怪的问题。我在 UI 中有三个部分,即预购、订单和开发,它显示每个部分中使用 DataGrid 呈现的信息。此 DataGrid 包含在 UserControl(项目控件)中,因此可以在三个位置重复使用。此 DataGrid 的 ItemsSource 属性采用 IEnumerable 的对象。所以Pre Orders、Orders和Developments都是IEnumerable的。每个 DataGrid 的 SelectedItem 都绑定到 ViewModel 的 SelectedProject 属性。我遇到的问题是,当每个 DataGrid 中存在两个或多个项目时,即使在这些部分之间切换选择,SelectedItem 也会完美更新。但是,如果这些部分中的任何部分仅包含一个项目,则在选择该项目时 SelectedItem 不会更新。只要项目是两个或更多,它就会继续为其他部分工作。 下面的快照可能有助于理解 UI、ViewModel 和 UserControl 的配置方式。

用户界面:

ViewModel 内容:

包含 DataGrid 的 UserControl 和绑定:

我尝试使用可能的关键字组合搜索解决方案,但没有成功。为了得出此问题仅在 DataGrid 中的项目数等于 1 的情况下引起的结论,我在观察到问题的部分添加了一个随机项目,并且工作正常。 我还尝试更新绑定选项,例如设置绑定模式、UpdateSourceTrigger 等,但这些都没有解决问题。

有人可以帮助确定问题,并且可以解释为什么会发生这种情况。

提前致谢。

在名为 PropertyStore 的类中实现 Get() 和 Set(value):

Project类继承自PropertyStore,实现了IProject接口

wpf binding datagrid selecteditem
© www.soinside.com 2019 - 2024. All rights reserved.