private void _loadSubItems(IDynamicTreeModel item, ItemCollection items) { if (items.Count == 1 && items[0] == null) { items.Clear(); } List <IDynamicTreeModel> childs = item.GetChildsByParentId(item.GetId()); TreeViewItem treeItem; foreach (var child in childs) { // vizuální položka ve stromě treeItem = new TreeViewItem() { Header = child.GetTreeNodeHeader() }; if (child.GetHashChilds()) { treeItem.Items.Add(null); } treeItem.Expanded += this.onExpanded; treeItem.PreviewMouseDoubleClick += this.onDoubleClick; treeItem.DataContext = child; // databázová entity treeItem.Tag = false; // nebyly načtené podpoložky items.Add(treeItem); } }
private void onExpanded(object sender, RoutedEventArgs e) { TreeViewItem treeItem = sender as TreeViewItem; if (!(bool)treeItem.Tag) { treeItem.Tag = true; IDynamicTreeModel dataObject = treeItem.DataContext as IDynamicTreeModel; this._loadSubItems(dataObject, treeItem.Items); } }