372 lines
26 KiB
XML
372 lines
26 KiB
XML
<UserControl x:Class="TestingModule.Views.SingleStepEdit"
|
|
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
|
xmlns:converters="clr-namespace:UIShare.Converters;assembly=UIShare"
|
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
|
xmlns:prism="http://prismlibrary.com/"
|
|
d:DesignHeight="450"
|
|
d:DesignWidth="800"
|
|
mc:Ignorable="d">
|
|
<UserControl.Resources>
|
|
<converters:ParameterCategoryToVisibilityConverter x:Key="ParameterCategoryToVisibilityConverter" />
|
|
<converters:ParameterTypeToBoolConverter x:Key="ParameterTypeToBoolConverter" />
|
|
<converters:ParameterCategoryToStringConverter x:Key="ParameterCategoryToStringConverter" />
|
|
<converters:IsEnumTypeConverter x:Key="IsEnumTypeConverter" />
|
|
<converters:EnumValuesConverter x:Key="EnumValuesConverter" />
|
|
<converters:EnumValueConverter x:Key="EnumValueConverter" />
|
|
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
|
<converters:FilteredParametersConverter x:Key="FilteredParametersConverter" />
|
|
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<GroupBox Header="单步编辑">
|
|
<Grid>
|
|
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="50" />
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
<!-- 名称 -->
|
|
<StackPanel Grid.Row="0"
|
|
Orientation="Horizontal"
|
|
Margin="7">
|
|
<Label Width="60"
|
|
Content="名称" />
|
|
<TextBox MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
Text="{Binding SelectedStep.Name}" />
|
|
</StackPanel>
|
|
|
|
<!-- 合格条件 -->
|
|
<StackPanel Grid.Row="1"
|
|
Orientation="Horizontal"
|
|
Margin="7">
|
|
<Label Width="60"
|
|
Content="合格条件" />
|
|
<TextBox MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
Text="{Binding SelectedStep.OKExpression}" />
|
|
</StackPanel>
|
|
|
|
<!-- 跳转 -->
|
|
<StackPanel Grid.Row="2"
|
|
Orientation="Horizontal"
|
|
Margin="7">
|
|
<Label Width="60"
|
|
Content="跳转"
|
|
ToolTip="格式:OK跳转序号/NG跳转序号(默认为0/0)" />
|
|
<TextBox MinWidth="120"
|
|
Text="{Binding SelectedStep.GotoSettingString}"
|
|
materialDesign:HintAssist.Hint="格式:OK跳转序号/NG跳转序号(默认为0/0)" />
|
|
</StackPanel>
|
|
|
|
<!-- 备注 -->
|
|
<StackPanel Grid.Row="3"
|
|
Orientation="Horizontal"
|
|
Margin="7">
|
|
<Label Width="60"
|
|
Content="备注" />
|
|
<TextBox MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
Text="{Binding SelectedStep.Description}" />
|
|
</StackPanel>
|
|
|
|
|
|
<!-- 参数编辑区 -->
|
|
<Grid Grid.Row="4">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="auto" />
|
|
<RowDefinition />
|
|
</Grid.RowDefinitions>
|
|
<StackPanel Height="30"
|
|
Orientation="Horizontal">
|
|
<Label Margin="7,0"
|
|
VerticalAlignment="Bottom"
|
|
Content="参数" />
|
|
</StackPanel>
|
|
<ScrollViewer Grid.Row="1"
|
|
Margin="40,0,0,0"
|
|
HorizontalScrollBarVisibility="Auto"
|
|
VerticalScrollBarVisibility="Auto">
|
|
<StackPanel>
|
|
<ItemsControl ItemsSource="{Binding SelectedStep.Method.Parameters}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="50" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0"
|
|
Margin="7,7,0,7"
|
|
Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text="{Binding Name}" />
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text="(" />
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text="{Binding Type.Name}" />
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text=")" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="1"
|
|
Margin="7"
|
|
Orientation="Horizontal">
|
|
<TextBlock Margin="5,0"
|
|
VerticalAlignment="Bottom"
|
|
Text="{Binding Category, Converter={StaticResource ParameterCategoryToStringConverter}}" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2"
|
|
Margin="7"
|
|
Orientation="Horizontal">
|
|
<!-- 输入参数编辑 -->
|
|
<StackPanel Height="30"
|
|
IsEnabled="{Binding Type, Converter={StaticResource ParameterTypeToBoolConverter}}"
|
|
Orientation="Horizontal"
|
|
Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}}">
|
|
<CheckBox VerticalAlignment="Bottom" Margin="0 15 0 0"
|
|
IsChecked="{Binding IsUseVar}" />
|
|
<Grid>
|
|
<!-- 常量输入区域 -->
|
|
<Grid Visibility="{Binding IsUseVar, Converter={StaticResource BooleanToVisibilityConverter}, ConverterParameter=Inverse}">
|
|
<!-- 非枚举类型 -->
|
|
<TextBox Height="22"
|
|
MinWidth="120"
|
|
VerticalAlignment="Bottom"
|
|
Padding="0"
|
|
Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
|
|
materialDesign:HintAssist.Hint=""
|
|
Visibility="{Binding Type, Converter={StaticResource IsEnumTypeConverter}, ConverterParameter=Collapse}" />
|
|
|
|
<!-- 枚举类型 -->
|
|
<ComboBox Height="22"
|
|
MinWidth="120"
|
|
VerticalAlignment="Bottom"
|
|
materialDesign:HintAssist.Hint=""
|
|
ItemsSource="{Binding Type, Converter={StaticResource EnumValuesConverter}}"
|
|
Visibility="{Binding Type, Converter={StaticResource IsEnumTypeConverter}}">
|
|
<ComboBox.SelectedItem>
|
|
<MultiBinding Converter="{StaticResource EnumValueConverter}">
|
|
<Binding Path="Type" />
|
|
<Binding Path="Value" />
|
|
</MultiBinding>
|
|
</ComboBox.SelectedItem>
|
|
</ComboBox>
|
|
</Grid>
|
|
|
|
<!-- 变量选择框 -->
|
|
<ComboBox Height="22"
|
|
MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
VerticalAlignment="Bottom"
|
|
SelectedValue="{Binding VariableName}"
|
|
SelectedValuePath="Name"
|
|
Visibility="{Binding IsUseVar, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<ComboBox.ItemsSource>
|
|
<MultiBinding Converter="{StaticResource FilteredParametersConverter}">
|
|
<Binding Path="Type" />
|
|
<Binding Path="DataContext.Program.Parameters"
|
|
RelativeSource="{RelativeSource AncestorType=UserControl}" />
|
|
</MultiBinding>
|
|
</ComboBox.ItemsSource>
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding Name}" />
|
|
<TextBlock Text="(" />
|
|
<TextBlock Text="{Binding Type.Name, TargetNullValue=Unknown}" />
|
|
<TextBlock Text=")" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
|
|
</Grid>
|
|
</StackPanel>
|
|
|
|
<!-- 输出参数编辑 -->
|
|
<StackPanel Height="30"
|
|
Orientation="Horizontal"
|
|
Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}, ConverterParameter=Inverse}">
|
|
<CheckBox VerticalAlignment="Bottom"
|
|
IsChecked="{Binding IsUseVar}"
|
|
Margin="0 15 0 0"
|
|
/>
|
|
<ComboBox Width="120"
|
|
Margin="0,0,0,0"
|
|
materialDesign:HintAssist.Hint=""
|
|
VerticalAlignment="Bottom"
|
|
SelectedValue="{Binding VariableName}"
|
|
SelectedValuePath="Name"
|
|
Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}, ConverterParameter=Inverse}">
|
|
<ComboBox.ItemsSource>
|
|
<MultiBinding Converter="{StaticResource FilteredParametersConverter}">
|
|
<Binding Path="Type" />
|
|
<Binding Path="DataContext.Program.Parameters"
|
|
RelativeSource="{RelativeSource AncestorType=UserControl}" />
|
|
</MultiBinding>
|
|
</ComboBox.ItemsSource>
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding Name}" />
|
|
<TextBlock Text="(" />
|
|
<TextBlock Text="{Binding Type.Name, TargetNullValue=Unknown}" />
|
|
<TextBlock Text=")" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
|
|
<ItemsControl ItemsSource="{Binding SelectedStep.SubProgram.Parameters}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}, ConverterParameter=Item}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="50" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0"
|
|
Margin="7,7,0,7"
|
|
Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text="{Binding Name}" />
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text="(" />
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text="{Binding Type.Name}" />
|
|
<TextBlock VerticalAlignment="Bottom"
|
|
Text=")" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="1"
|
|
Margin="7"
|
|
Orientation="Horizontal">
|
|
<TextBlock Margin="5,0"
|
|
VerticalAlignment="Bottom"
|
|
Text="{Binding Category, Converter={StaticResource ParameterCategoryToStringConverter}}" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2"
|
|
Margin="7"
|
|
Orientation="Horizontal">
|
|
<!-- 输入参数编辑 -->
|
|
<StackPanel Height="30"
|
|
Orientation="Horizontal"
|
|
Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}}">
|
|
<CheckBox VerticalAlignment="Bottom"
|
|
IsChecked="{Binding IsUseVar}" />
|
|
<Grid>
|
|
<!-- 常量输入区域 -->
|
|
<Grid Visibility="{Binding IsUseVar, Converter={StaticResource BooleanToVisibilityConverter}, ConverterParameter=Inverse}">
|
|
<!-- 非枚举类型 -->
|
|
<TextBox Height="22"
|
|
MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
VerticalAlignment="Bottom"
|
|
Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
|
|
Visibility="{Binding Type, Converter={StaticResource IsEnumTypeConverter}, ConverterParameter=Collapse}" />
|
|
|
|
<!-- 枚举类型 -->
|
|
<ComboBox Height="22"
|
|
MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
VerticalAlignment="Bottom"
|
|
ItemsSource="{Binding Type, Converter={StaticResource EnumValuesConverter}}"
|
|
SelectedItem="{Binding Value}"
|
|
Visibility="{Binding Type, Converter={StaticResource IsEnumTypeConverter}}" />
|
|
</Grid>
|
|
|
|
<!-- 变量选择框 -->
|
|
<ComboBox Height="22"
|
|
MinWidth="120"
|
|
materialDesign:HintAssist.Hint=""
|
|
VerticalAlignment="Bottom"
|
|
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=DataContext.Program.Parameters}"
|
|
SelectedValue="{Binding VariableName}"
|
|
SelectedValuePath="Name"
|
|
Visibility="{Binding IsUseVar, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding Name}" />
|
|
<TextBlock Text="(" />
|
|
<TextBlock Text="{Binding Type.Name, TargetNullValue=Unknown}" />
|
|
<TextBlock Text=")" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</Grid>
|
|
</StackPanel>
|
|
|
|
<!-- 输出参数编辑 -->
|
|
<CheckBox VerticalAlignment="Bottom"
|
|
IsChecked="{Binding IsUseVar}"
|
|
Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}, ConverterParameter=Inverse}" />
|
|
<ComboBox Width="120"
|
|
Margin="0,0,0,0"
|
|
materialDesign:HintAssist.Hint=""
|
|
VerticalAlignment="Bottom"
|
|
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=DataContext.Program.Parameters}"
|
|
SelectedValue="{Binding VariableName}"
|
|
SelectedValuePath="Name"
|
|
Visibility="{Binding Category, Converter={StaticResource ParameterCategoryToVisibilityConverter}, ConverterParameter=Inverse}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding Name}" />
|
|
<TextBlock Text="(" />
|
|
<TextBlock Text="{Binding Type.Name, TargetNullValue=Unknown}" />
|
|
<TextBlock Text=")" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
|
|
<!-- 按钮 -->
|
|
<StackPanel Grid.Row="5"
|
|
Orientation="Horizontal"
|
|
FlowDirection="RightToLeft"
|
|
Margin="5,0">
|
|
|
|
<Button Width="90"
|
|
Content="取消"
|
|
Command="{Binding CancelEditCommand}" />
|
|
|
|
<Button Width="90"
|
|
Margin="20,0"
|
|
Content="保存"
|
|
Command="{Binding SaveStepCommand}" />
|
|
|
|
</StackPanel>
|
|
</Grid>
|
|
</GroupBox>
|
|
</Grid>
|
|
</UserControl>
|