在这种情况下,我有一个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