-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathProductSelector.xaml.cs
50 lines (41 loc) · 1.89 KB
/
ProductSelector.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using HGM.Hotbird64.LicenseManager.Extensions;
using HGM.Hotbird64.Vlmcs;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
// ReSharper disable once CheckNamespace
namespace HGM.Hotbird64.LicenseManager
{
public partial class ProductSelector
{
public SkuItem SelectedProduct => ((TreeViewItem)ProductTree.SelectedItem)?.Header as SkuItem;
public ProductSelector()
{
InitializeComponent();
TopElement.LayoutTransform = Scaler;
foreach (AppItem product in KmsLists.AppItemList)
{
TreeViewItem appitem = new TreeViewItem { Header = product };
ProductTree.Items.Add(appitem);
foreach (KmsItem kmsProduct in KmsLists.KmsItemList.Where(k => k.App == product))
{
TreeViewItem kmsItem = new TreeViewItem { Header = kmsProduct };
foreach (SkuItem skuProduct in KmsLists.SkuItemList.Where(p => p.KmsItem == kmsProduct).OrderBy(p => p.DisplayName))
{
TreeViewItem skuItem = new TreeViewItem { Header = skuProduct };
kmsItem.Items.Add(skuItem);
}
appitem.Items.Add(kmsItem);
}
}
ProductTree.SelectedItemChanged += (sender, eventArgs) => ButtonOk.IsEnabled = ((TreeViewItem)eventArgs.NewValue).Header is SkuItem;
}
private void TreeViewItem_DoubleClick(object sender, MouseButtonEventArgs args)
{
if (((TreeViewItem)ProductTree.SelectedItem)?.Header is SkuItem) DialogResult = true;
}
private void Button_OK_Click(object sender, RoutedEventArgs e) => DialogResult = true;
private void TreeViewItem_Collapse(object sender, RoutedEventArgs e) => ((ItemsControl)e.Source).ExpandAll(false);
}
}