Files
SzmediTools/Szmedi.RevitToolkit.Approval/Views/ReviewMetroSignView.xaml
2025-09-16 16:06:41 +08:00

169 lines
9.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<controls:MaterialWindow
x:Class="Szmedi.RevitToolkit.Approval.Views.ReviewMetroSignView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:controls="clr-namespace:Szmedi.RevitToolkit.Approval.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewmodels="clr-namespace:Szmedi.RevitToolkit.Approval.ViewModels"
Title="轨道交通标识检查"
Width="800"
Height="600"
d:DataContext="{d:DesignInstance Type=viewmodels:ReviewMetroSignViewModel}"
Style="{DynamicResource SZMEDIWindowStyle}"
mc:Ignorable="d">
<controls:MaterialWindow.Resources>
<ResourceDictionary Source="pack://application:,,,/Szmedi.RevitToolkit.Approval;component/SZMEDIResources.xaml" />
</controls:MaterialWindow.Resources>
<Grid>
<DataGrid
x:Name="ReviewDataGrid"
Margin="5"
AutoGenerateColumns="False"
CanUserAddRows="False"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
GridLinesVisibility="Horizontal"
ItemsSource="{Binding Items}"
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling">
<!-- <Style TargetType="DataGridCell">
<Setter Property="MinHeight" Value="40" />
<Setter Property="VerticalContentAlignment" Value="Center" />
-->
<!-- 确保 TextBlock 也垂直居中(如果列内容是 TextBlock -->
<!-- <Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>-->
<DataGrid.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<DataGridRowsPresenter />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Width="80">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Content="全选">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Checked">
<b:CallMethodAction MethodName="SelectAll" TargetObject="{Binding ElementName=DataGridElements}" />
</b:EventTrigger>
<b:EventTrigger EventName="Unchecked">
<b:CallMethodAction MethodName="UnselectAll" TargetObject="{Binding ElementName=DataGridElements}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- <DataGridTextColumn Width="Auto"
Binding="{Binding Sign, UpdateSourceTrigger=LostFocus}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
Header="标识" />-->
<DataGridComboBoxColumn Width="*" Header="标识">
<DataGridComboBoxColumn.EditingElementStyle>
<Style BasedOn="{StaticResource MaterialDesignDataGridComboBox}" TargetType="ComboBox">
<Setter Property="IsEditable" Value="True" />
<Setter Property="ItemsSource" Value="{Binding DataContext.Signs, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
<Setter Property="SelectedValue" Value="{Binding Sign, UpdateSourceTrigger=PropertyChanged}" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding DataContext.Signs, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
<Setter Property="SelectedValue" Value="{Binding Sign, UpdateSourceTrigger=PropertyChanged}" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
<!-- <DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="Auto"
ItemsSource="{Binding Signs, RelativeSource={RelativeSource AncestorType=DataGrid}}"
SelectedItem="{Binding Sign}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>-->
<DataGridTextColumn
Width="*"
Binding="{Binding Element.Id}"
Header="元素ID"
IsReadOnly="True" />
<DataGridTextColumn
Width="*"
Binding="{Binding Element.Category.Name}"
Header="族类别"
IsReadOnly="True" />
<DataGridTextColumn
Width="2*"
Binding="{Binding Element.Name}"
Header="实例"
IsReadOnly="True" />
<DataGridTemplateColumn Width="*" Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<!-- 按钮参数绑定到当前行的绑定的Item -->
<Button
Command="{Binding DataContext.ShowElementCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
CommandParameter="{Binding}"
Content="定位构件" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<Button
Margin="5"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Command="{Binding UpdateCodeCommand}"
Content="刷新编码" />
<!-- <StackPanel>
<TreeView x:Name="ElemTreeView"
MinWidth="200"
ItemsSource="{Binding KeyValues}">
<b:Interaction.Triggers>
<b:EventTrigger EventName="MouseDoubleClick">
<b:InvokeCommandAction Command="{Binding LocationElementCommand}" CommandParameter="{Binding ElementName=ElemTreeView, Path=SelectedItem}" />
</b:EventTrigger>
</b:Interaction.Triggers>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Value}">
<TextBlock Text="{Binding Key}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
<TextBlock Text="-" />
<TextBlock Text="{Binding Id}" />
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</StackPanel>-->
</Grid>
</controls:MaterialWindow>