我正在研究绑定到返回委托结果的 ObservableCollection 属性的概念证明。委托也为其设置了一个属性,这样我就可以更改使用的表达式,它会触发集合的 OnPropertyChanged。这允许我将 ComboBox 绑定到 Collection,并且在更改表达式/查询时,ComboBox 中的可用选项也会发生变化。
代码:
public delegate List<string> Del();
private Del _query;
public Del Query
{
get
{
return _query;
}
set
{
_query= value;
OnPropertyChanged("BindList");
}
}
private ObservableCollection<string> bindList;
public ObservableCollection<string> BindList
{
get
{
var results = Query();
bindList = new ObservableCollection<string>(results);
return bindList;
}
set
{//I believe I need this setter for the extra functionality provided by ObservableCollections over Lists
if(bindList != value) {
bindList = value;
OnPropertyChanged("BindList");
}
}
}
由于这有效,我想用它制作一个易于绑定的类。我正在寻求有关如何执行此操作的指导。我曾考虑过将 ObservableCollection 子类化,但在如何设置 Items 时遇到了问题。我还考虑了一个使用 IEnumerable 和 ICollectionView 等接口的自定义类(以及通知接口)。
总而言之,您将如何构建一个类来合并一个集合,该集合的成员基于关于子类化/接口的委托查询(具体来说是 LINQ)?
提前致谢。