1

我有一个自定义集合,它扩展了 ObservableCollection 并覆盖了 ToString()。如果我将此集合绑定到 TextBox 的 Text 属性,如下所示:

  <TextBox IsReadOnly="True" Text="{Binding Satellites, Mode=OneTime}"/>

其中 Satellites 将是这个自定义集合的一个实例,文本框会显示(Collection)而不是调用我的 ToString() 自定义实现。

这是预期的行为吗?

4

2 回答 2

1

该属性可能绑定到 aCollectionView而不是直接绑定到集合。

尝试向集合类添加一个属性以返回要显示的文本:

public string DisplayText
{
   get { return ToString(); }
}

然后绑定到该属性:

<TextBox IsReadOnly="True" Text="{Binding Satellites.DisplayText, Mode=OneTime}"/>
于 2012-11-21T14:53:40.380 回答
0

也许 WPF 查看绑定对象的类型,当它看到 IEnumerable 时,它​​不会调用 ToString()。

但我认为您可以通过使用转换器来获得相同的结果(假设您只想绑定该集合一次)。看看IValueConverter

于 2012-11-21T14:49:49.507 回答