Files
RevitArchive/RevitKits/ParameterManager/MetroCategoryParamsPage.xaml

176 lines
8.4 KiB
Plaintext
Raw Normal View History

2026-02-23 14:58:05 +08:00
<Page
x:Class="Sai.Common.Shared.ParameterManager.MetroCategoryParamsPage"
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:Sai.Common.Shared.ParameterManager"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:standardTools="clr-namespace:SZBIM.StandardTools"
Title="轨道交通交付标准"
d:DataContext="{d:DesignInstance Type=infoManager:MetroCategoryParamsViewModel}"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<Page.Resources>
<ResourceDictionary Source="/Sai.RvKits;component/Styles/WPFUI.xaml" />
</Page.Resources>
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</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 TreeItemChanged}"
CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type standardTools: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"
AutoGenerateColumns="False"
CanUserAddRows="False"
ItemsSource="{Binding SelectedItem.Tag, Mode=TwoWay, ElementName=ParamsTreeView}">
<DataGrid.Columns>
<!--<DataGridTemplateColumn Width="40" Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox
Name="chk"
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsChecked="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>-->
<DataGridCheckBoxColumn Binding="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
CanUserSort="False">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox" />
</DataGridCheckBoxColumn.ElementStyle>
<!--<DataGridCheckBoxColumn.Header>
<CheckBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding CheckAll}" CommandParameter="{Binding Items, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
</i:EventTrigger>
<i:EventTrigger EventName="Unchecked">
<i:InvokeCommandAction Command="{Binding UnCheckAll}" CommandParameter="{Binding Items, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
</DataGridCheckBoxColumn.Header>-->
</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 InformationLevel}"
Header="信息等级"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding Unit}"
Header="单位"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Row="1" Grid.Column="0">
<RadioButton
Margin="5"
HorizontalAlignment="Left"
Content="项目参数(共享参数)"
IsChecked="{Binding IsSharedProjectParam}"
ToolTip="共享参数作为项目参数,关联到所选族的类别">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding TreeItemChanged}"
CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</RadioButton>
<RadioButton
Margin="5"
HorizontalAlignment="Left"
Content="族参数(共享参数)"
IsChecked="{Binding IsSharedFamilyParam}"
ToolTip="共享参数作为族参数,关联到所选族文件">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding TreeItemChanged}"
CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</RadioButton>
<RadioButton
Margin="5"
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>
<StackPanel
Grid.Row="1"
Grid.Column="1"
Margin="5">
<CheckBox
Margin="5"
HorizontalAlignment="Center"
Content="添加通用属性"
IsChecked="{Binding IsAddCommonParam}" />
<StackPanel
Margin="5"
HorizontalAlignment="Center"
Orientation="Horizontal">
<Button
Margin="5"
Command="{Binding AddParameters}"
CommandParameter="{Binding ItemsSource, ElementName=ParamDataGrid}"
Content="添加参数"
Cursor="Hand"
IsEnabled="{Binding CanAdd, Mode=TwoWay}" />
</StackPanel>
</StackPanel>
</Grid>
</Page>