using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Xml; using Aitex.Core.UI.View.Common; namespace Aitex.Core.UI.Dialog { /// /// Interaction logic for RecipeSelectDialog.xaml /// public partial class RecipeSelectDialog : Window { private string _recipeList; public RecipeSelectDialog(string recipeList) { _recipeList = recipeList; InitializeComponent(); Loaded += new RoutedEventHandler(RecipeSelectDialog_Loaded); } /// /// load recipe file list /// /// /// void RecipeSelectDialog_Loaded(object sender, RoutedEventArgs e) { XmlDocument doc = new XmlDocument(); doc.LoadXml(_recipeList); CreateTreeViewItems(doc.DocumentElement, this.treeView1); } /// /// Create TreeViewItems /// /// void CreateTreeViewItems(XmlElement curElementNode, ItemsControl itemsControl) { foreach (XmlElement ele in curElementNode.ChildNodes) { if (ele.Name == "File") { string fileName = ele.Attributes["Name"].Value; fileName = fileName.Substring(fileName.LastIndexOf('\\') + 1); TreeViewFileItem item = new TreeViewFileItem(ele.Attributes["Name"].Value); item.Tag = ele.Attributes["Name"].Value; item.ToolTip = ele.Attributes["Name"].Value; itemsControl.Items.Add(item); } else if (ele.Name == "Folder") { string folderName = ele.Attributes["Name"].Value; folderName = folderName.Substring(folderName.LastIndexOf('\\') + 1); TreeViewFolderItem item = new TreeViewFolderItem(folderName); item.Tag = ele.Attributes["Name"].Value; CreateTreeViewItems(ele, item); item.IsExpanded = false; itemsControl.Items.Add(item); } } } /// /// Selected recipe file /// public string SelectedRecipe { get { var file = treeView1.SelectedItem as TreeViewFileItem; if (file != null) return file.FileName; return string.Empty; } } /// /// On click cancel button /// /// /// private void btnCancel_Click(object sender, RoutedEventArgs e) { DialogResult = false; Hide(); } /// /// On click ok button /// /// /// private void btnOK_Click(object sender, RoutedEventArgs e) { DialogResult = true; Close(); } private void TreeView1_MouseDoubleClick(object sender, MouseButtonEventArgs e) { btnOK_Click(sender, e); } } }