diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml.cs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml.cs index 72bef1205..b6e701841 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml.cs @@ -12,6 +12,8 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.MachineStudio.UI.ViewModels; +using Tango.TFS; namespace Tango.MachineStudio.UI.Views { @@ -20,16 +22,78 @@ namespace Tango.MachineStudio.UI.Views /// </summary> public partial class ReportIssueView : UserControl { + private ReportIssueViewVM _vm; + public ReportIssueView() { InitializeComponent(); this.Loaded += ReportIssueView_Loaded; + this.DataContextChanged += ReportIssueView_DataContextChanged; + } + + private void ReportIssueView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + { + _vm = this.DataContext as ReportIssueViewVM; } private void ReportIssueView_Loaded(object sender, RoutedEventArgs e) { txt_title.Focus(); } + + private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) + { + _vm.WorkItem.Area = e.NewValue as Area; + toggleArea.IsChecked = false; + } + + private TreeView tree; + + private void TreeView_Loaded(object sender, RoutedEventArgs e) + { + tree = sender as TreeView; + tree.ItemContainerGenerator.StatusChanged += ItemContainerGenerator_StatusChanged; + } + + private void ItemContainerGenerator_StatusChanged(object sender, EventArgs e) + { + if (tree.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated) + { + TreeViewItem i = tree.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem; + i.IsExpanded = true; + } + } + + static TreeViewItem GetTreeViewItem(ItemsControl parent, object item, bool isExpanded) + { + if (item is TreeViewItem tvi) + return tvi; + + var result = ContainerFromItem(parent, item); + if (result == null && isExpanded) + { + parent.UpdateLayout(); + result = ContainerFromItem(parent, item); + } + return result; + } + + static TreeViewItem ContainerFromItem(ItemsControl parent, object item) => (TreeViewItem)parent.ItemContainerGenerator.ContainerFromItem(item); + + void SelectTreeViewItem(TreeView treeView, TreeViewItem Item) + { + Item.IsExpanded = Item.DataContext == areaCombo.SelectedItem; + + foreach (var item in Item.Items) + { + var i = GetTreeViewItem(treeView, item, false); + + i.IsExpanded = i.DataContext == areaCombo.SelectedItem; + + if (i.HasItems) + SelectTreeViewItem(treeView, i); + } + } } } |
