gpt4 book ai didi

.net - 从 CheckedListBox.Items 绑定(bind)启用属性 - Winforms

转载 作者:行者123 更新时间:2023-12-03 06:06:04 26 4
gpt4 key购买 nike

我对 winforms 编程比较陌生,来自 ASP.NET,我正在努力绑定(bind) checklistbox.items 中的“Enabled”字段等内容。

例如,我有一个:

class A
{
public string Name {get;set;}
public bool Enabled {get; set;}
}

然后,我创建一个列表项 A 并绑定(bind)到一个选中列表框。

List<A> aList = new List<A>(
new A{Name="Item1", Enabled=true},
new A{Name="Item2", Enabled=false} );

CheckedListBox.DataSource = aList;
CheckedListBox.DisplayMember = "Name";

最后,如何使“Enabled==false”的项目在选中列表框中显示为禁用?

当然,我需要对 Checked 属性执行相同的操作,但为了简单起见,我没有将其添加到示例中。

谢谢

约翰

最佳答案

您无法使用 WinForms CheckedListBox 执行这种丰富的数据绑定(bind)。

您可以设置 DataSource,然后设置 DisplayMember 和 ValueMember 属性,但从那里开始,您必须使用代码完成其余操作(包括设置 Enabled 和 Checked 属性)

设置基本绑定(bind)如下所示:

checkedListBox.DataSource = aList; 
checkedListBox.DisplayMember = "Name";
checkedListBox.ValueMember = "Name";

从那里,您将需要迭代数据源,根据需要设置各个项目属性。

您可能能够做的一件事(我没有尝试过,但它应该可以工作)是子类化 CheckedListBox 以及新类中的一些自定义绑定(bind)代码。

这可能会给你一个更优雅的解决方案 - 从后面的代码中删除代码,尽管根据你的情况可能不值得付出努力。

关于.net - 从 CheckedListBox.Items 绑定(bind)启用属性 - Winforms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com