public override IViewBuilder CreateView(HierarchyItemViewModel viewModel) { var tvi = new Virtual.TreeViewItem { Header = viewModel.Name, // TODO: add folder/entity icon // ContextMenu = ... TODO: generate entity context menu Tag = viewModel, Items = viewModel.Children.Select(c => CreateView(c)), IsExpanded = viewModel.IsExpanded, IsSelected = viewModel.IsSelected, OnSelected = selected => dispatcher.Dispatch( new SelectHierarchyItemCommand(), new SelectHierarchyItemCommand.Context { ViewModel = viewModel, Selected = selected, }), OnExpanded = expanded => dispatcher.Dispatch( new ExpandHierarchyItemCommand(), new ExpandHierarchyItemCommand.Context { ViewModel = viewModel, Expand = expanded, }), }; return(tvi); }
public override IViewBuilder CreateView(HierarchyItemViewModel viewModel) { var assetItem = viewModel as AssetItemViewModel; var tvi = new Virtual.TreeViewItem { Header = viewModel.Name, // TODO: add project/folder/asset icon // ContextMenu = ... TODO: generate asset context menu Tag = viewModel, Items = viewModel.Children.Select(c => CreateView(c)), IsExpanded = viewModel.IsExpanded, IsSelected = viewModel.IsSelected, OnSelected = selected => dispatcher.Dispatch( new SelectHierarchyItemCommand(), new SelectHierarchyItemCommand.Context { ViewModel = viewModel, Selected = selected, }), OnExpanded = expanded => dispatcher.Dispatch( new ExpandHierarchyItemCommand(), new ExpandHierarchyItemCommand.Context { ViewModel = viewModel, Expand = expanded, }), }; if (assetItem != null) { tvi.OnDoubleClick = (args) => dispatcher.Dispatch( new OpenAssetCommand(), new OpenAssetCommand.Context { AssetItem = assetItem.Source, AssetManager = assetManager, }); } else { tvi.OnDoubleClick = Ignore; } return(tvi); }