2025-03-17 22:17:28 +08:00

106 lines
6.5 KiB
XML

<Window x:Class="Seyounth.Hyosung.Views.Windows.PalletManagerWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Seyounth.Hyosung.Views.Windows"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:viewConverter="clr-namespace:Seyounth.Hyosung.ViewConverter"
xmlns:system="clr-namespace:System;assembly=System.Runtime"
xmlns:models="clr-namespace:Seyounth.Hyosung.Data.Models;assembly=Seyounth.Hyosung.Data"
xmlns:global="clr-namespace:"
mc:Ignorable="d" WindowStyle="None"
SizeToContent="WidthAndHeight"
AllowsTransparency="True"
x:Name="PalletWindow"
Margin="0" Padding="0"
d:DesignHeight="800" d:DesignWidth="600"
d:DataContext="{d:DesignInstance local:PalletManagerWindow,
IsDesignTimeCreatable=True}"
WindowStartupLocation="CenterScreen">
<Window.Resources>
<ObjectDataProvider x:Key="PalletTypes"
MethodName="GetValues"
ObjectType="{x:Type system:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="models:PalletType" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<viewConverter:EnumDescriptionConverter x:Key="EnumDescriptionConverter" />
</Window.Resources>
<GroupBox materialDesign:ElevationAssist.Elevation="Dp6"
FontSize="22"
Header="托盘\隔板管理"
Style="{StaticResource MaterialDesignCardGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGrid x:Name="PalletDataGrid" FontSize="20" Grid.Row="0"
ItemsSource="{Binding ViewModel.Pallets, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
AutoGenerateColumns="False"
CellEditEnding="DataGrid_CellEditEnding"> <!-- 添加事件处理 -->
<DataGrid.Columns>
<DataGridComboBoxColumn Header="托盘类型" MinWidth="120"
ItemsSource="{Binding Source={StaticResource PalletTypes}}"
SelectedValueBinding="{Binding Type, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextBinding="{Binding Type}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock
Text="{Binding Converter={StaticResource EnumDescriptionConverter}}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock
Text="{Binding Converter={StaticResource EnumDescriptionConverter}}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
<DataGridTextColumn Header="长度" Binding="{Binding Length}" />
<DataGridTextColumn Header="宽度" Binding="{Binding Width}" />
<DataGridTextColumn Header="高度" Binding="{Binding Height}" />
<DataGridTextColumn Header="孔数" Binding="{Binding HoleCount}" />
<DataGridCheckBoxColumn Header="大孔" Binding="{Binding IsBigHole}" />
<DataGridTemplateColumn Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Margin="0,0,10,0" Content="保存"
Command="{Binding ElementName=PalletWindow, Path=DataContext.ViewModel.SavePalletCommand}"
CommandParameter="{Binding}"
Visibility="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=IsEditing, Converter={StaticResource BooleanToVisibilityConverter}}" />
<!-- 删除按钮 -->
<Button Content="删除"
Background="Red"
Command="{Binding ElementName=PalletWindow, Path=DataContext.ViewModel.DeletePalletCommand}"
CommandParameter="{Binding}" />
<!-- 保存按钮,根据 DataGridRow 的 IsEditing 属性控制可见性 -->
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<StackPanel Margin="16" Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button x:Name="ExitButton" Click="ExitButton_OnClick" Width="100" FontSize="22" Content="确定" />
</StackPanel>
</Grid>
</GroupBox>
</Window>