Files
MsAddIns/QuickModeling/Views/ConfigurationPropsAttachView.xaml
2026-02-28 21:01:57 +08:00

192 lines
9.5 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.
<Window x:Class="QuickModeling.Views.ConfigurationPropsAttachView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:QuickModeling.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:QuickModeling.Models"
xmlns:markup="clr-namespace:QuickModeling.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="clr-namespace:QuickModeling.ViewModels"
Width="320"
Height="400"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=views:ConfigurationPropsAttachViewModel}"
Title="参数批处理"
WindowStartupLocation="CenterOwner">
<Window.Resources>
<conv:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
<!-- <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander Header="{Binding Name}" IsExpanded="True">
--> <!-- <Expander.Header>
<TextBlock Text="{Binding Path=Name}"/>
</Expander.Header> --> <!-- <ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style> -->
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="4" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Margin" Value="4" />
<Setter Property="Padding" Value="4" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Margin" Value="4" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="4" />
<Setter Property="Padding" Value="3" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<!-- <Expander Header="{Binding Name}" IsExpanded="True">
--> <!-- <Expander.Header>
<TextBlock Text="{Binding Path=Name}"/>
</Expander.Header> --> <!-- <ItemsPresenter />
</Expander> -->
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="参数分组:" />
<TextBlock FontWeight="Bold" Text="{Binding Name}" />
<TextBlock Text="{Binding ItemCount, StringFormat=' (合计数量 = \{0} )'}" />
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Margin="5"
VerticalAlignment="Center"
Text="构件类型:" />
<ComboBox Grid.Column="1"
Margin="5"
ItemsSource="{markup:EnumSource EnumType=local:ComponentType, BindToDescription=True}"
SelectedValue="{Binding SelectedComponentType}" />
</Grid>
<Grid Grid.Row="1" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Margin="5"
VerticalAlignment="Center"
Text="参数模板:" />
<ComboBox Grid.Column="1"
Margin="5"
DisplayMemberPath="Name"
ItemsSource="{Binding Configs}"
SelectedItem="{Binding SelectedConfig}" />
</Grid>
<GroupBox Grid.Row="3"
Grid.ColumnSpan="3"
Margin="5"
Header="参数列表">
<DataGrid AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
d:ItemsSource="{d:SampleData ItemCount=5}"
ItemsSource="{Binding SelectedConfig.Parameters}"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.IsVirtualizingWhenGrouping="True">
<DataGrid.RowValidationErrorTemplate>
<ControlTemplate>
<Grid ToolTip="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}, Path=(Validation.Errors).CurrentItem.ErrorContent}">
<!-- <Ellipse Width="{TemplateBinding FontSize}"
Height="{TemplateBinding FontSize}"
Fill="Red"
StrokeThickness="0" /> -->
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="{TemplateBinding FontSize}"
FontWeight="Bold"
Foreground="Red"
Text="!" />
</Grid>
</ControlTemplate>
</DataGrid.RowValidationErrorTemplate>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="VerticalContentAlignment" Value="Center" />
<!-- 确保 TextBlock 也垂直居中(如果列内容是 TextBlock -->
</Style>
</DataGrid.CellStyle>
<DataGrid.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<DataGridRowsPresenter />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.Columns>
<DataGridTextColumn Width="2*"
Binding="{Binding Name}"
Header="名称"
IsReadOnly="True" />
<DataGridTextColumn Width="*"
Binding="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
Header="值" />
<DataGridTextColumn Width="Auto"
Binding="{Binding DataType, Converter={StaticResource EnumToDescriptionConverter}}"
Header="单位"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</GroupBox>
<UniformGrid Grid.Row="4"
Grid.ColumnSpan="3"
Rows="1">
<Button Margin="5"
Command="{Binding ConfigManagerCommand}"
Content="配置管理" />
<Button Margin="5"
Command="{Binding ModifyConfigCommand}"
CommandParameter="{Binding SelectedConfig}"
Content="修改当前模板" />
<Button Margin="5"
Command="{Binding AddToModelsCommand}"
CommandParameter="{Binding SelectedConfig}"
Content="添加到选中模型" />
</UniformGrid>
</Grid>
</Window>