【问题标题】:IListSource and ToString() with DataSourceIListSource 和 ToString() 与 DataSource
【发布时间】:2009-09-10 15:29:22
【问题描述】:

首先我有一个列表框并将 DataSource 设置为 MyObjectCollection

MyObjectCollection 实现了 IListSource 接口,其中包含 MyObject 的

MyObject 有方法

public override string ToString()
{
    return "test";
}

列表框现在为 MyObjectCollection 中的每个元素显示“测试”。

但如果我也将 IListSource 接口应用于 MyObject。列表框显示一个空字符串。如何在“MyObject”类中解决这个问题。 一种解决方法是在 Listbox Format 事件中修复它,但每个 GUI 元素都必须实现此解决方法:/

【问题讨论】:

  • 顺便说一句 - 这是 winform、wpf 还是 asp.net?我无法在 winform 中重现...

标签: c# datasource tostring


【解决方案1】:

一般来说,事物应该要么是列表,要么应该是绑定的实体。如果它是一个列表(IListIListSource),那么大部分数据绑定 API 将假定您确实需要(对于简单绑定场景,即一行)first 项子列表。

我会简单地更改它,以便MyObject 实现IListSource,但封装它,也许通过Items 属性公开它。您还可以查看自定义 TypeConverter 是否有效(我会调查...)

【讨论】:

  • 把它封装起来,对我来说是最好的方式。也许这太容易了;)现在我将 MyObject.ListProperty 绑定为 MyObject ,一切正常。
猜你喜欢
  • 2017-06-30
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
相关资源
最近更新 更多