using System.Collections.Generic; using System.ComponentModel.Composition; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using Infrastructure; using Microsoft.Practices.Prism.PubSubEvents; namespace Tree { /// /// BehaviorTreeView.xaml 的交互逻辑 /// [ViewExport(RegionName = "BehaviorTreeRegion"), PartCreationPolicy(CreationPolicy.NonShared)] public partial class AllTreeView { public AllTreeView() { this.InitializeComponent(); this.nodeDataEditor.AllTreeView = this; this.treeView.AllTreeView = this; } [Import] private AllTreeViewModel ViewModel { get { return this.DataContext as AllTreeViewModel; } set { this.DataContext = value; } } private void MenuItem_Open(object sender, RoutedEventArgs e) { } private void MenuItem_Save(object sender, RoutedEventArgs e) { } private void MenuItem_New(object sender, RoutedEventArgs e) { TreeViewModel treeViewModel = new TreeViewModel(new List()); this.ViewModel.Add(treeViewModel); this.treeView.ViewModel = treeViewModel; } private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var item = (FrameworkElement)sender; var treeInfoViewModel = item.DataContext as TreeInfoViewModel; if (this.treeView.ViewModel.TreeId == treeInfoViewModel.Id) { return; } this.treeView.ViewModel = this.ViewModel.Get(treeInfoViewModel.Id); } } }