在這種情況下,我有一個objectA的集合,每個集合都有一個屬性objectB的集合。綁定到集合的集合WPF
我正在嘗試正確綁定到列表中的objectB集合的集合,換句話說,我希望列表框包含所有objectA包含的所有objectB。
我嘗試在爲這樣的「{結合objectACollection/objectBCollection}綁定,但是這並不能提供我的結果。
在這種情況下,我有一個objectA的集合,每個集合都有一個屬性objectB的集合。綁定到集合的集合WPF
我正在嘗試正確綁定到列表中的objectB集合的集合,換句話說,我希望列表框包含所有objectA包含的所有objectB。
我嘗試在爲這樣的「{結合objectACollection/objectBCollection}綁定,但是這並不能提供我的結果。
您試圖混合呈現和邏輯,我覺得是造成混亂。
。如果你有一個集合withing的集合,並且希望以樹形結構顯示它使用Hierarchichal Datatemplate您可以任意選擇自己適合您樹/列表控件如:TreeView, HierarchicalDataTemplate and recursive Data
據我理解你的問題,你是試圖創建objectACollection和obj的聯合ectBCollection並將其顯示爲單個列表。我建議你在視圖模型中公開一個創建這個聯合的屬性,而不是在視圖中嘗試它。因爲這顯然是一個屬於ViewModel的邏輯,而不是讓XAML/View找出它。
如果我的理解錯誤,請更正。
我希望列表框包含所有objectB包含的所有objectB。
我想你想從兩個列出了常見的項目,如果是的話,那麼下面的代碼可以幫助你
var commonElements = objectAs.Intersect(objectBs).ToList();
public class TheDataContext
{
public TheDataContext()
{
_listOfAs = new List<A>
{
new A(),
new A(),
new A()
};
_listOfBs = new ObservableCollection<B>(_listOfAs.SelectMany(a => a.B));
}
private List<A> _listOfAs;
private ObservableCollection<B> _listOfBs;
public ObservableCollection<B> ListOfBs
{
get
{
return _listOfBs;
}
}
}
public class A
{
public A()
{
B = new List<B>
{
new B(),
new B(),
new B()
};
}
public IEnumerable<B> B { get; set; }
}
public class B
{
}
既然你不提供任何實際的代碼,你的問題有點含糊,我想這就是你的意思。這會給你一個列表,列出你在ListBox中顯示的9個Bs。
你對第二個想法是正確的,我最終創建了這樣一個屬性,我只是希望會有一個相對簡單的前端方法來做到這一點,但令人難以置信的簡單後端方式也可以, 非常感謝。 –
我很高興這很有幫助。 – CarbineCoder