Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }