Files
SzmediTools/Szmedi.RvKits/InfoManager/Delivery/MetroProjectParamManagerPage.xaml
2025-09-16 16:06:41 +08:00

86 lines
4.4 KiB
XML

<Page
x:Class="Szmedi.RvKits.InfoManager.MetroProjectParamManagerPage"
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:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:infoManager="clr-namespace:Szmedi.RvKits.InfoManager"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="clr-namespace:Szmedi.RvKits.Models"
Title="轨交项目参数"
d:DataContext="{d:DesignInstance Type=infoManager:MetroProjectParamManagerViewModel}"
d:DesignHeight="450"
d:DesignWidth="800"
Background="{DynamicResource MaterialDesignPaper}"
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
mc:Ignorable="d">
<Page.Resources>
<ResourceDictionary Source="pack://application:,,,/Szmedi.RvKits;component/WPFUI.xaml" />
</Page.Resources>
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.4*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TreeView x:Name="ParamsTreeView" ItemsSource="{Binding Models}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type models:TreeModel}" ItemsSource="{Binding Children}">
<StackPanel x:Name="staTree" Margin="-2,0,0,0" Orientation="Horizontal">
<Image VerticalAlignment="Center" Source="{Binding Icon}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding IsChecked}" Value="true">
<Setter TargetName="staTree" Property="Background" Value="White" />
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding TreeItemChangedCommand}" CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TreeView>
<DataGrid
x:Name="ParamDataGrid"
Grid.Row="0"
Grid.Column="1"
d:ItemsSource="{d:SampleData}"
AutoGenerateColumns="False"
CanUserAddRows="False"
ItemsSource="{Binding SelectedItem.Tag, Mode=TwoWay, ElementName=ParamsTreeView}">
<DataGrid.Columns>
<DataGridCheckBoxColumn
Binding="{Binding IsChecked, Mode=TwoWay}"
CanUserSort="False"
EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}"
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}">
<!--<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox" />
</DataGridCheckBoxColumn.ElementStyle>-->
</DataGridCheckBoxColumn>
<DataGridTextColumn Binding="{Binding PropertyCategory}" Header="属性类别" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding PropertyGroup}" Header="属性分组" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding FullProperty}" Header="属性名" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Unit}" Header="单位" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding InformationLevel}" Header="信息等级" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
<Button
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Right"
Command="{Binding AddParametersCommand}"
CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}"
Content="添加到当前项目" />
<StackPanel Grid.Row="1" Grid.Column="0" />
</Grid>
</Page>