我有一个基本问题:
假设我有一些类的元素列表。我还有一个 DataGrid,它显示此列表项的属性。我希望用户通过额外的复选框列(实际上是 datagridtemplatecolumn)选择一些项目。然后他按下按钮,只有选定的项目才会被某些功能处理。 我应该如何实现这个复选框的逻辑?
我应该向我的类添加一个 bool 属性并将其绑定(bind)到复选框列吗? (我认为,仅仅为了 UI 而在我的核心类中添加一个额外的属性并不好)
我是否应该制作一些具有 bool 属性的包装类并将 DataGrid 绑定(bind)到包装类列表? (比第一个变体更符合 OOP 规则)
制作一个未绑定(bind)的复选框列。然后检查循环中的数据网格行以在处理之前收集选定的项目。 (这就是我想做的,但是未绑定(bind)的复选框列的行为真的很奇怪:当我切换一个复选框时,其他几个也被切换。而且我也没有找到一种方法来查看 DataGrid 的所有行).
您的变体...
我想根据 OOP 规则来做这些事情。这是主要要求。这就是为什么我不能接受第一个变体,除非你告诉我它没问题而且很常用。
最佳答案
我投票给#2;它与 MVVM 结合我认为这是在 WPF 中进行直接开发的唯一方法。通过这种方式,您将制作一个 View 模型类来包装您的域对象以处理复选框和更改属性等之间的通信,同时触发 PropertyChanged 事件并保持您的 UI 最新。
关于c# - WPF DataGrid 绑定(bind)和复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3420060/