-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainWindow.xaml
89 lines (86 loc) · 6.07 KB
/
MainWindow.xaml
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<Window x:Class="TreeViewMVVMBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:VM="clr-namespace:TreeViewMVVMBinding"
mc:Ignorable="d"
Title="MainWindow" Height="272.5" Width="330" MinWidth="330" MinHeight="200"
MouseLeftButtonDown="Window_MouseLeftButtonDown"
KeyDown="Grid_KeyDown"
Name="TestTaskWindow">
<Window.DataContext>
<VM:MainWindowViewModel/>
</Window.DataContext>
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Control.Margin" Value="15,8,15,5"/>
<Setter Property="Control.BorderBrush" Value="Black"/>
<Setter Property="Control.BorderThickness" Value="2" />
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect/>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="TreeView">
<Setter Property="Control.Margin" Value="10,5"/>
<Setter Property="Control.Background" Value="LightGray"/>
<Setter Property="Control.BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="2"/>
</Style>
<Style x:Key="ExpandingImageStyle" TargetType="{x:Type Image}">
<Setter Property="Source" Value="Resources/icon-floder-close.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="True">
<Setter Property="Source" Value="Resources/icon-floder-open.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid HorizontalAlignment="Right" Width="322">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0" MinWidth="300" MinHeight="70">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="1.3*"/>
</Grid.ColumnDefinitions>
<Button x:Name="AddGroupButton" Command="{Binding AddGroupCommand}" Grid.Column="0" Grid.Row="0" Content="Add group" MinHeight="20" MinWidth="100" AutomationProperties.HelpText="Added new group to treeview" AutomationProperties.Name="Add group button" AutomationProperties.ItemType="Button"/>
<Button x:Name="RemoveGroup_ControlButton" Command="{Binding RemoveGroupControl}" CommandParameter="{Binding ElementName=MainTreeView, Path=SelectedItem}" Grid.Column="1" Grid.Row="0" Content="Remove Group/Control" MinHeight="20" MinWidth="145" AutomationProperties.Name="RemoveGroup_ControlButton" AutomationProperties.ItemType="Button" />
<Button x:Name="AddControlButton" Command="{Binding AddControlCommand}" CommandParameter="{Binding ElementName=MainTreeView, Path=SelectedItem}" Grid.Column="0" Grid.Row="1" Content="Add control" MinHeight="20" MinWidth="100" Click="AddControlButton_Click" AutomationProperties.Name="AddControlButton" AutomationProperties.ItemType="Button"/>
<Button x:Name="HighlightButton" Click="HighlightButton_Click" Command="{Binding Highlight}" CommandParameter="{Binding ElementName=MainTreeView, Path=Items}" Grid.Column="1" Grid.Row="1" Content="Highlight" MinHeight="20" MinWidth="145" AutomationProperties.Name="HighlightButton" AutomationProperties.ItemType="Button"/>
<TextBox x:Name="xTextBox" Grid.Row="3" Grid.Column="0" TextChanged="xTextBox_TextChanged"/>
<TextBox x:Name="yTextBox" Grid.Row="3" Grid.Column="1" TextChanged="yTextBox_TextChanged"/>
</Grid>
<TreeView x:Name="MainTreeView" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding Groups}" AutomationProperties.Name="MainTreeView" AutomationProperties.ItemType="treeView">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding MyControls}" DataType="{x:Type VM:Group}">
<StackPanel Orientation="Horizontal" Height="50" AutomationProperties.ItemType="TreeViewItem" AutomationProperties.Name="TreeViewItemGroup" >
<Image Height="40" Width="40" Style="{StaticResource ExpandingImageStyle}"/>
<TextBlock Text="{Binding Name}" AutomationProperties.Name="{Binding Name}"/>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type VM:MyControl}">
<StackPanel Orientation="Horizontal" Height="50" AutomationProperties.Name="TreeViewItemControl" AutomationProperties.ItemType="TreeViewItem" Name="myControls">
<Image Margin="5" HorizontalAlignment="Left" Height="40" Width="40" Source="Resources/icon-file.png"></Image>
<TextBlock Height="40" Text="{Binding Name}" AutomationProperties.Name="{Binding Name}" Margin="5"/>
<TextBlock Height="40" Text="{Binding Role}" AutomationProperties.Name="{Binding Role}" Margin="5"/>
<TextBlock Height="40" Text="{Binding Value}" AutomationProperties.Name="{Binding Value}" Margin="5"/>
</StackPanel>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<Border Grid.Row="2" VerticalAlignment="Bottom" Height="20" Background="LightGray" BorderBrush="Black" BorderThickness="0,2,0,0"/>
</Grid>
</Window>