CSharp - ListView中的方法输出的WPF中的绑定复选框

  显示原文与译文双语对照的内容
0 0

我正在使用WPF制作小型桌面应用程序。

我有一个视图,它的中包含一个包含项的视图,每个元素都通过for和 {binding name}绑定。

但是每个listview项必须有一个复选框。 检查复选框是否依赖于不同的List 存在,意味着我无法将它绑定到模型/datacontext 。 是否可以将方法的输出的isChecked属性从文件后面的代码中绑定? 我该怎么做?

时间:原作者:4个回答

0 0

你说你拥有一个listview并且它的itemssource属性绑定到了viewmodel的集合。 如果是这样,则应该使用bool属性扩展该集合中实例所在的对象。 这里属性应确定实例是否位于你所提到的其他 List 中,并且该属性可以绑定到 isChecked property属性。

或者你可以在( 循环浏览listview项目并检查该项是否位于其他 List 中,并查找该项的复选框并相应检查) 后面的代码中做一些讨厌的事情,但我强烈建议不要这样做。

原作者:
0 0

你的问题不太明确,但如果我理解正确,你可以以尝试使用 checkedListBox 。 它可以包含复选框的List,你可以循环访问它:

for (int i = 0; i <checkedListBox1.Items.Count; i++) {
 if(....) {
//here you can write your if statement or call a method whose return type is bool
 checkedListBox1.SetItemChecked(i, true);
 }
}
原作者:
0 0

如果我正确理解了你试图做什么,你可以在isChecked绑定上使用 ValueConverter 。 在该方法上,可以对其他列表中存在的参数进行比较或者测试。 不需要打破 mvvm Pattern

IValueConverter用法和教程:值转换与 IValueConverter 。

原作者:
...