using Aitex.Core.RT.DataCenter; using Aitex.Core.Util; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows; using System.Windows.Controls; using Venus_MainPages.Sequence; using Venus_MainPages.ViewModels; using Venus_Unity; namespace Venus_MainPages.Views { /// /// UserControl1.xaml 的交互逻辑 /// public partial class NewRecipeSequenceSelectView : Window { private FileNode pre_currentFileNode; private FileNode process_currentFileNode; private FileNode wtw_currentFileNode; private FileNode post_currentFileNode; SerializableDictionary recipeDictionary = new SerializableDictionary(); public string FullPath { get; private set; } string value; public NewRecipeSequenceSelectView(string path) { InitializeComponent(); //this.buttonOK.IsEnabled = false; value = path; } private void buttonCancel_Click(object sender, RoutedEventArgs e) { this.DialogResult = false; } private void buttonOK_Click(object sender, RoutedEventArgs e) { this.DialogResult = true; //if (this.currentFileNode != null) //{ // if (this.currentFileNode.IsFile) // { // this.FullPath = this.currentFileNode.FullPath.Trim(); // } //} //StringBuilder recipeInfo = new StringBuilder(); ; if (pre_currentFileNode != null) { recipeDictionary.Add("PreLotClean", pre_currentFileNode.Name); } else { recipeDictionary.Add("PreLotClean", ""); } if (process_currentFileNode != null) { recipeDictionary.Add("Process", process_currentFileNode.Name); } else { recipeDictionary.Add("Process", ""); } if (wtw_currentFileNode != null) { recipeDictionary.Add("WTWClean", wtw_currentFileNode.Name); } else { recipeDictionary.Add("WTWClean", ""); } if (post_currentFileNode != null) { recipeDictionary.Add("PostLotClean", post_currentFileNode.Name); } else { recipeDictionary.Add("PostLotClean", ""); } this.FullPath = SerializeHelper.Instance.DictionaryToString(recipeDictionary); } private void PreClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) { pre_currentFileNode = (FileNode)(sender as TreeView).SelectedItem; } private void Process_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) { process_currentFileNode = (FileNode)(sender as TreeView).SelectedItem; } private void WTWClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) { wtw_currentFileNode = (FileNode)(sender as TreeView).SelectedItem; } private void PostClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) { post_currentFileNode = (FileNode)(sender as TreeView).SelectedItem; } private void Window_Loaded(object sender, RoutedEventArgs e) { var dictionary = SerializeHelper.Instance.StringToDictionary(value); if (dictionary.Count == 0) { return; } foreach (var item in PreLotTreeView.Items) { var tvi = (TreeViewItem)PreLotTreeView.ItemContainerGenerator.ContainerFromItem(item); SetSelect(tvi, dictionary["PreLotClean"]); } foreach (var item in ProcessTreeView.Items) { var tvi = (TreeViewItem)ProcessTreeView.ItemContainerGenerator.ContainerFromItem(item); SetSelect(tvi, dictionary["Process"]); } foreach (var item in WTWTreeView.Items) { var tvi = (TreeViewItem)WTWTreeView.ItemContainerGenerator.ContainerFromItem(item); SetSelect(tvi, dictionary["WTWClean"]); } foreach (var item in PostLotTreeView.Items) { var tvi = (TreeViewItem)PostLotTreeView.ItemContainerGenerator.ContainerFromItem(item); SetSelect(tvi, dictionary["PostLotClean"]); } } void SetSelect(TreeViewItem tvi, string value) { if (tvi.Items.Count > 0) { foreach (var item in tvi.Items) { var tviChild = (TreeViewItem)tvi.ItemContainerGenerator.ContainerFromItem(item); var model = (FileNode)item; if (model.Name == value) { tviChild.IsSelected = true; break; } else { SetSelect(tviChild, value); } } } else { } } } }