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

126 lines
6.9 KiB
XML

<Page
x:Class="Szmedi.RvKits.InfoManager.ArchiParamManagerPage"
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:ArchiParamManagerViewModel}"
d:DesignHeight="450"
d:DesignWidth="800"
Background="{DynamicResource MaterialDesign.Brush.Background}"
TextElement.Foreground="{DynamicResource MaterialDesign.Brush.Foreground}"
mc:Ignorable="d">
<Page.Resources>
<ResourceDictionary Source="pack://application:,,,/Szmedi.RvKits;component/WPFUI.xaml" />
</Page.Resources>
<Grid>
<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}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding TreeItemChangedCommand}" CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<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>
</TreeView>
<DataGrid
x:Name="ParamDataGrid"
Grid.Row="0"
Grid.Column="1"
SelectionUnit="Cell"
AutoGenerateColumns="False"
CanUserAddRows="False"
ItemsSource="{Binding SelectedItem.Tag, Mode=TwoWay, ElementName=ParamsTreeView}">
<DataGrid.Columns>
<DataGridCheckBoxColumn
Binding="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
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 FullProperty}" Header="属性名" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Unit}" Header="单位" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
<StackPanel
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Right"
Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<RadioButton
HorizontalAlignment="Left"
Content="项目参数(共享参数)"
IsChecked="{Binding IsSharedProjectParam}"
ToolTip="共享参数作为项目参数,关联到所选族的类别,用于系统族">
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding TreeItemChangedCommand}" CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>-->
</RadioButton>
<Separator Width="Auto">
<Separator.LayoutTransform>
<RotateTransform Angle="90" />
</Separator.LayoutTransform>
</Separator>
<RadioButton
HorizontalAlignment="Left"
Content="族参数(共享参数)"
IsChecked="{Binding IsSharedFamilyParam}"
ToolTip="共享参数作为族参数,关联到所选族,用于可载入族">
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding TreeItemChangedCommand}" CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>-->
</RadioButton>
<RadioButton
HorizontalAlignment="Left"
Content="族参数"
IsChecked="{Binding IsFamilyParam}"
ToolTip="添加族参数,关联到所选族,用于可载入族">
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding TreeItemChanged}" CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>-->
</RadioButton>
</StackPanel>
<Button Command="{Binding AddParametersCommand}" Content="添加实例参数" ToolTip="框选构件,对构件添加参数" />
</StackPanel>
</Grid>
</Grid>
</Page>