alielie
2026-09-10 9ec80cafc23f5ee3278cacce3c9f86f4087b435a
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
<UserControl x:Class="OpenTapEditor.VariableReadOnlyTree"
             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:OpenTapEditor"
             mc:Ignorable="d" 
             xmlns:ui="clr-namespace:UILib;assembly=UILib"
             xmlns:sys="clr-namespace:System;assembly=mscorlib"
             xmlns:addIn="clr-namespace:OpenTap.Addin;assembly=OpenTap"
             x:Name="self"
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/UILib;component/Themes/Generic.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <ObjectDataProvider x:Key="TypeEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
                <ObjectDataProvider.MethodParameters>
                    <x:Type TypeName="addIn:TestVariableType"/>
                </ObjectDataProvider.MethodParameters>
            </ObjectDataProvider>
        </ResourceDictionary>
    </UserControl.Resources>
 
    <Grid>
        <ui:TreeListView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding Datasource}" AlternationCount="2"
                                 PreviewMouseRightButtonDown="OnPreviewMouseRightButtonDown"
                         ChildrenPath="Children"
                         ItemSelectedColor="#c1dcf9"
                         ItemSelectedForeground="Black"
                         BorderColor="{StaticResource BorderBrush}"
                 x:Name="fileGlobalView">
            <ui:TreeListView.Columns>
                <GridViewColumn Header="名称" Width="200" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Border Style="{StaticResource TreeCellBoard}">
                                <DockPanel>
                                    <ToggleButton x:Name="Expander" Style="{StaticResource SimpleToggleButton}" ClickMode="Press"/>
                                    <!--<TextBlock Text="{Binding Name}"/>-->
                                    <ui:EditBox 
                                        CanEdit="{Binding NameCanEdit}"
                                        PreEditing="VariableNamePreEditing"
                                        PreSubmit="VariableNamePreSubmit"
                                        InitEdit="{Binding InitEdit,RelativeSource={RelativeSource AncestorType=local:VariableReadOnlyTree,AncestorLevel=1}}"
                                            Tag="{Binding RelativeSource={RelativeSource AncestorType=ui:TreeListViewItem}}" 
                                            Value="{Binding Name,Mode=TwoWay}"/>
                                </DockPanel>
                            </Border>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
 
                <GridViewColumn Header="类型" Width="100">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Border Style="{StaticResource TreeCellBoard}">
                                <DockPanel>
                                    <!--<Button Tag="{Binding }" Click="Button_Click" DockPanel.Dock="Right">s</Button>-->
                                    <TextBlock Text="{Binding Mode=OneWay,Converter={x:Static local:TestVariableConverter.Instance},ConverterParameter='TypeName'}"/>
                                </DockPanel>
                            </Border>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
 
                <!--<GridViewColumn Header="值" Width="100" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Value}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>-->
 
            </ui:TreeListView.Columns>
 
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Children}" AlternationCount="2">
                    <Border BorderThickness="0" x:Name="border">
                        <GridViewRowPresenter Grid.Row="0" MouseLeftButtonDown="GridViewRowPresenter_MouseDown"
                      Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ui:TreeListViewItem,AncestorLevel=1}}"
                      Columns="{Binding Columns, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ui:TreeListView,AncestorLevel=1}}" 
                      Content="{Binding }"/>
                    </Border>
 
                    <HierarchicalDataTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="Background" Value="#e5f3fb"/>
                        </Trigger>
                    </HierarchicalDataTemplate.Triggers>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </ui:TreeListView>
    </Grid>
</UserControl>