gpt4 book ai didi

.net - Windows 窗体数据绑定(bind) DisplayMember 自定义类子属性

转载 作者:行者123 更新时间:2023-12-04 23:34:30 25 4
gpt4 key购买 nike

我正在尝试将 Windows 窗体项目中 ListBox 的 DisplayMember 属性设置为我绑定(bind)到的通用列表中的嵌套类的属性。

这是一个简单的例子:

 public class Security
{
public int SecurityId { get; set;}
public SecurityInfo Info { get; set;}
}
public class SecurityInfo
{
public string Description { get; set;}
}
//........//
public void DoIt()
{
List<Security> securities = new List<Security>();
//add securities to list
lstSecurities.DataSource = securities;
lstSecurities.DisplayMember = "Info.Description";
}

这可以通过一个简单的 ListBox 实现,还是我必须创建一个子类 ListBox 来处理这个?

编辑:

我试图不修改这些类,因为它们是通过 WSDL 文档生成的。

最佳答案

不,大多数 winforms 绑定(bind)不支持这样的子属性。

您可以直接使用自定义类型描述符来完成此操作,但这需要大量工作且不值得。

检查生成的代码;它应该(使用任何最新版本的工具)是 partial class ;这意味着您可以在 中添加额外的成员第二 class 文件,因此您不会破坏 wsdl 生成的代码 - 即

namespace MyWsdlNamespace {
partial class MyClass {
public string InfoDescription {
get { return Info.Description; }
// and a set if you want
}
}
}

您现在应该能够相当容易地绑定(bind)到“InfoDescription”。

关于.net - Windows 窗体数据绑定(bind) DisplayMember 自定义类子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/440651/

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