使用HierarchicalDataTemplate讓TreeView自動長整棵樹
xaml
-
ViewModel會在Resource裡面產生實例(instance)
-
TreeView DataContext透過static resource,透過key值mainViewModel找到xaml中ViewModel的實例(instance),然後把ItemSource binding到ViewModel中的DataSource屬性上
因為DataSource是ObservableCollection所以在資料發生異動的時候,他會通知有訂閱的UI去更新畫面 -
HierarchicalDataTemplate 的itemsource屬性binding在DataSource.Children屬性上,Children的資料型態是 ObservableCollection,
HierarchicalDataTemplate會自己找出子層然後生出UI
1 | <local:DataExplorer.Resources> |
ViewModel
ViewModel建構子(VmUcPrincipalExplorer)
1 | public VmUcPrincipalExplorer() |
DataSource Property
1 | private ObservableCollection _DataSource = new ObservableCollection(); |
DataModel
1 | public class Node: Jepun.Services.Common.Contract.AppPrincipals |