我有Binding
(从不介意它是DataGridTextColumn
属性这一事实:
...
<DataGridTextColumn Binding="{Binding Path=Whatever}"/>
...
代码隐藏:
MyCollectionType<WhateverWrapper> { get; set; }
这是WhateverWrapper
:
class WhateverWrapper {
public string Whatever { get; set; }
}
我的问题是:为MyCollectionType
工作,Binding
有哪些要求?我必须实现哪些接口?或者如果不是接口继承使其工作,那么它是什么?也许是特定的方法名称?
答案 0 :(得分:2)
ItemsControl
控件是ListBox
,ListView
,DataGrid
,ComboBox
或MenuItem
等控件的基础,具有{{3 IEnumerable
类型的属性:
public IEnumerable ItemsSource {get;组; }
这是主要条件。如果集合实现了IEnumerable
接口,则可以绑定到集合。
WPF永远不会直接绑定到集合。如果将集合指定为绑定源,则WPF实际上会绑定到集合的默认视图。
如果您希望绑定自动获取对集合所做的更改(添加/删除项目),那么您还需要实现ItemsSource
接口或使用像INotifyCollectionChanged
这样的现成实现。 />
您可以在以下网址阅读更多相关信息: