我正在研究綁定到ObservableCollection屬性的概念證明,該屬性返回委託的結果。委託還爲其設置了一個屬性,以便我可以更改使用的表達式,併爲集合觸發OnPropertyChanged。這允許我將ComboBox綁定到Collection,並且在更改表達式/查詢時,ComboBox中的可用選項也將更改。收藏/收藏查看基於Silverlight中的Linq查詢
代碼:
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)?
在此先感謝。
'ICollectionView'看起來像是答案的一部分。它具有SourceCollection的只讀屬性,我認爲應該只在我的類中引用一個私有列表?除非我也從一些集合類繼承,當我嘗試綁定到我的類不需要綁定到'myCollection.SourceCollection'或綁定到'myCollection'就足夠了(myCollection是我的自定義類的類型)。我寧願不必做點語法,因爲我會有很多這些,它會變得混亂。 – Ethan 2012-08-16 14:41:57