エンティティをツリー ビューにバインドするプロジェクトに取り組んでいます。エンティティは、id、idParent、Name、ChildrenElements (子が追加された場合に監視可能なコレクション) で構成されます。このプログラムは、オブジェクトをツリー ビューにバインドし、子の場合はノードを追加することになっています。
実在物:
class Item
{
int id;
int parentId;
string name;
ObservableCollection<Item>childrenElements = new ObservableCollection<Item>();
public int Id
{
get { return id; }
set { id = value; }
}
public int ParentId
{
get { return parentId; }
set { parentId = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public ObservableCollection<Item> ChildrenElements
{
get { return childrenElements; }
set { childrenElements = value; }
}
}
ビューモデル:
class ViewModel
{
public ObservableCollection<Item> OCItem { get; set; }
Item item;
public ViewModel()
{
OCItem = new ObservableCollection<Item>();
}
}
分離コード:
public partial class MainWindow : Window
{
ViewModel vm;
public MainWindow()
{
InitializeComponent();
vm = new ViewModel();
this.DataContext = vm;
vm.OCItem.Add(new Item() { Name = "Frederic" });
vm.OCItem.Add(new Item() { Name = "John" });
}
}
XAML:
<Grid>
<TreeView Height="208" HorizontalAlignment="Left" Margin="38,42,0,0" Name="treeView1" VerticalAlignment="Top" Width="177" ItemsSource="{Binding OCItem}">
<TreeView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
私の質問は、エンティティ内に新しい観察可能なコレクションを作成 (およびその方法) して、エンティティが独自の観察可能なコレクションに他のエンティティを持ち、それをそのエンティティの子としてツリー ビューに追加することは可能かということです。