alielie
2025-04-10 6bcafc823e836ecd5790f87178a906333699f868
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<hb:PluginControl x:Class="HMI.MenuManage.MenuManage"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:HMI.MenuManage"
             xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
             xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
             xmlns:pw="https://opensource.panuon.com/wpf"
             xmlns:pu="https://opensource.panuon.com/wpf-ui"
             xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
             xmlns:cc="clr-namespace:HMI.Core;assembly=HMI.Core"
             mc:Ignorable="d" 
             Padding="10"
             Loaded="DataGrid_Loaded"
             Background="{StaticResource WorkspaceBackground}"
             d:DesignHeight="450" d:DesignWidth="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="8*"/>
            <ColumnDefinition Width="2*"/>
        </Grid.ColumnDefinitions>
 
        <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
            <StackPanel>
                <DockPanel Margin="0,0,0,10">
                    <Button DockPanel.Dock="Right" Style="{StaticResource DelBtn}"
                            x:Name="deleteBatchBtn" Click="Button_Click"/>
                    <Button DockPanel.Dock="Right" Style="{StaticResource RfhBtn}" 
                            Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click"/>
                    <Button DockPanel.Dock="Right" Style="{StaticResource AddBtn}" 
                            Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click"/>
                    <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
                           VerticalAlignment="Center" HorizontalAlignment="Left" 
                               Text="{DynamicResource HMI.Menu.Title}"/>
                </DockPanel>
 
                <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}"
                          ItemsSource="{Binding DataSource}">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                        <DataGridTemplateColumn Header="#" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Converter={StaticResource rowNumber},
                    RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                        <DataGridTextColumn Binding="{Binding Code}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.Code}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
 
                        <DataGridTextColumn Binding="{Binding Name}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.Name}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Level}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.Level}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <DataGridTextColumn Binding="{Binding Type}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.Type}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <!--<DataGridTextColumn Binding="{Binding ParentCode}" Header="{DynamicResource HMI.Menu.ParentCode}"/>-->
 
                        <DataGridTextColumn Binding="{Binding ParentName}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.ParentName}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <DataGridTextColumn Width="*" Binding="{Binding DllPath}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.DllPath}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <DataGridTextColumn Width="*" Binding="{Binding ClassName}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.ClassName}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <DataGridTextColumn Width="50" Binding="{Binding Sort}">
                            <DataGridTextColumn.Header>
                                <TextBlock Text="{DynamicResource HMI.Menu.Sort}"/>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                        <DataGridTemplateColumn Width="110" IsReadOnly="True" CanUserResize="False">
                            <DataGridTemplateColumn.Header>
                                <TextBlock Text="{DynamicResource App.Opt}"/>
                            </DataGridTemplateColumn.Header>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <Button x:Name="editBtn" Style="{StaticResource EditLink}"
                            Click="Button_Click" Margin="0,0,10,0"
                            DataContext="{Binding }"/>
                                        <Button x:Name="delBtn" Style="{StaticResource DeleteLink}" 
                            DataContext="{Binding }"
                            Click="Button_Click"/>
                                    </StackPanel>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>
            </StackPanel>
        </Border>
 
        <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
            <StackPanel>
                <DockPanel Margin="0,0,0,10" >
                    <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
                   VerticalAlignment="Center" HorizontalAlignment="Left" Text="{DynamicResource HMI.Menu.TreeTitle}"/>
                </DockPanel>
 
                <TreeView x:Name="treeViewer" Style="{StaticResource DefaultTreeView}" ItemsSource="{Binding TreeDataSource}"
                          SelectedItemChanged="treeViewer_SelectedItemChanged">
                    <TreeView.ItemTemplate>
                        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                            <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                                <Image Width="{StaticResource ContentFontSize}" Height="{StaticResource ContentFontSize}" Margin="5" 
                                       Source="{Binding IconPath,Converter={StaticResource path2Image},Mode=OneWay}"/>
                                <TextBlock VerticalAlignment="Center" FontSize="{StaticResource ContentFontSize}" Text="{Binding Name}"/>
                            </StackPanel>
                        </HierarchicalDataTemplate>
                    </TreeView.ItemTemplate>
                </TreeView>
            </StackPanel>
        </Border>
    </Grid>
</hb:PluginControl>