void AddItem_Click(object sender, RoutedEventArgs e) { MenuItemEx mi = sender as MenuItemEx; if (mi == null) return; TableDialog td = new TableDialog(); td.ShowDialog(); if (td.Result != MessageBoxResult.OK) return; string name = td.Name; _BindingT.SetTable(mi.Owner.Name, name); Modify = true; List<KeyValueData> kvList = new List<KeyValueData>(); ImageTreeViewItem node = new ImageTreeViewItem(); node.SelectedImage = new BitmapImage(new Uri("Resource/Image/file1.png", UriKind.Relative)); node.UnselectedImage = new BitmapImage(new Uri("Resource/Image/file.png", UriKind.Relative)); node.Text = name; node.TableName = name; node.Selected += TreeViewItem_Selected; mi.Owner.BindingItem.Items.Add(node); TreeViewItemContextMenu cm = new TreeViewItemContextMenu(); cm.Name = name; cm.OwnerName = mi.Owner.Name; cm.BindingItem = node; cm.RootItem = mi.Owner.BindingItem; node.ContextMenu = cm; cm.AddItem.Click += new RoutedEventHandler(AddItem_Click); cm.DeleteItem.Click += new RoutedEventHandler(DeleteItem_Click); DataTable dt = new DataTable(name); dt.Columns.Add("Key", typeof(string)); dt.Columns.Add("Type", typeof(string)); dt.Columns.Add("Data", typeof(string)); foreach (KeyValueData kvd in kvList) { dt.Rows.Add(kvd.Key, kvd.Type, kvd.Data); } TableData tab = new TableData(); tab.Name = name; tab.DataSource = dt; tab.Item = kvList; node.Tag = tab; }
private void DisplayTreeView(ImageTreeViewItem root, String name, List<String> items) { List<KeyValueData> kvList = new List<KeyValueData>(); foreach (String key in items) { int value = BindingT.GetValue(name, key); if (BindingT.IsTable(value)) { ImageTreeViewItem node = new ImageTreeViewItem(); node.SelectedImage = new BitmapImage(new Uri("Resource/Image/file1.png", UriKind.Relative)); node.UnselectedImage = new BitmapImage(new Uri("Resource/Image/file.png", UriKind.Relative)); node.Text = key; node.TableName = key; node.Selected += TreeViewItem_Selected; root.Items.Add(node); TreeViewItemContextMenu cm = new TreeViewItemContextMenu(); cm.Name = key; cm.OwnerName = name; cm.BindingItem = node; cm.RootItem = root; node.ContextMenu = cm; cm.AddItem.Click += new RoutedEventHandler(AddItem_Click); cm.DeleteItem.Click += new RoutedEventHandler(DeleteItem_Click); List<String> subItems = BindingT.GetTableKeys(key); DisplayTreeView(node, key, subItems); continue; } KeyValueData kvData = new KeyValueData(); if (BindingT.IsBool(value)) { bool bv = BindingT.ToBool(value); kvData.AttachToTfsValue(key, ValueType.Bool, bv.ToString()); } else if (BindingT.IsByte(value)) { byte bv = BindingT.ToByte(value); kvData.AttachToTfsValue(key, ValueType.Byte, bv.ToString()); } else if (BindingT.IsDouble(value)) { double dv = BindingT.ToDouble(value); kvData.AttachToTfsValue(key, ValueType.Double, dv.ToString()); } else if (BindingT.IsFloat(value)) { float fv = BindingT.ToFloat(value); kvData.AttachToTfsValue(key, ValueType.Float, fv.ToString()); } else if (BindingT.IsInt32(value)) { int i32v = BindingT.ToInt32(value); kvData.AttachToTfsValue(key, ValueType.Int32, i32v.ToString()); } else if (BindingT.IsInt64(value)) { Int64 i64v = BindingT.ToInt64(value); kvData.AttachToTfsValue(key, ValueType.Int64, i64v.ToString()); } else if (BindingT.IsString(value)) { string sv = BindingT.ToString(value); kvData.AttachToTfsValue(key, ValueType.String, sv); } kvList.Add(kvData); } DataTable dt = new DataTable(name); dt.Columns.Add("Key", typeof(string)); dt.Columns.Add("Type", typeof(string)); dt.Columns.Add("Data", typeof(string)); foreach (KeyValueData kvd in kvList) { dt.Rows.Add(kvd.Key, kvd.Type, kvd.Data); } TableData tab = new TableData(); tab.Name = name; tab.DataSource = dt; tab.Item = kvList; root.Tag = tab; }
public void AttachToTinyFS(TinyFS tfs) { BindingT = tfs; ImageTreeViewItem rootItem = new ImageTreeViewItem(); rootItem.SelectedImage = new BitmapImage(new Uri("Resource/Image/letter1.png", UriKind.Relative)); rootItem.UnselectedImage = new BitmapImage(new Uri("Resource/Image/letter.png", UriKind.Relative)); rootItem.Text = System.IO.Path.GetFileName(FileName); rootItem.Selected += TreeViewItem_Selected; rootItem.IsExpanded = true; SysTreeView.Items.Add(rootItem); ImageTreeViewItem.RootItem = rootItem; TreeViewItemContextMenu cm = new TreeViewItemContextMenu(); cm.DeleteItem.IsEnabled = false; cm.BindingItem = rootItem; cm.AddItem.Click += new RoutedEventHandler(AddItem_Click); cm.DeleteItem.Click += new RoutedEventHandler(DeleteItem_Click); rootItem.ContextMenu = cm; List<String> items = tfs.GetTableKeys(null); DisplayTreeView(rootItem, null, items); }