连接到多个资源

时间:2010-06-08 10:22:15

标签: wpf treeview multibinding

我想知道是否有办法连接多个资源:

具体来说,我有以下问题

abstact class BaseClass
{
  ObservableCollection<BaseClass>;
}

class GrandSonClass:BaseClass{}

class SonClass:BaseClass{}

class FatherClass:BaseClass
{
  CollectionViewSource col = new CollectionViewSource ;
  col.Source = Items.SelectMany(p => p.Items);
}

FatherClass的Items属于ChildrenClass类型,ChildrenClass的Items属于GrandSonClass类型;

我希望FatherClass绑定到它拥有的所有GrandSonClass项目。

使用SelectMany的解决方案并不好,因为每当FatherClass添加更多项目以及每当其项目(SonClasses)添加更多项目时,我都需要动态更新它。

现在我可以继续编写notifiaction事件,但我想知道是否有更聪明的方法来做它

-i.e。只需将源定义为FatherClass拥有的每个项目的项目

我有这个数据结构

|

| ___ Child1

| ------ | ___ GrandChild1

| ------ | ___ GrandChild2

| ___ CHILD2

| ------- | ___ GrandChild3

| ------- | ___ GrandChild4

我希望看到像TreeView这样的树

|

| ___ GrandChild1

| ___ GrandChild2

| ___ GrandChild3

| ___ GrandChild4

项目通过ItemsSource连接。 我希望每当添加或删除子孙时,都会使用数据更新TreeView

孩子们是父亲的ObseravvolCollection,而且孩子们是孩子们的Observable Collection(它是一个反复的Hierachial数据结构,都使用相同类型的类

0 个答案:

没有答案