浏览代码

添加滑动栏

ltwork 1 年之前
父节点
当前提交
c84189d9ae

+ 22 - 12
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/AddOrEditSchViewModel.cs

@@ -54,16 +54,16 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             DeleteBeforeCommand = new DelegateCommand<Object>(DeleteBefore);
             DeleteInCommand = new DelegateCommand<object>(DeleteIn);
             DeleteOutCommand = new DelegateCommand<object>(DeleteOut);
-            OnLoadCommand = new DelegateCommand(OnLoad);
+            OnLoadCommand = new DelegateCommand<object>(OnLoad);
             TxtLostFocusCommand = new DelegateCommand(GetExistSchs);
             OpenExistCommand = new DelegateCommand<string>(OpenExist);
             UpCommand = new DelegateCommand<object>(DataUp);
             DownCommand = new DelegateCommand<object>(DataDown);
             SaveAllSchCommand = new DelegateCommand<object>(SaveAllSch);
             EditDetailCommand = new DelegateCommand<object>(DataGridSelectChange);
-           
+            DisAnoCommand = new DelegateCommand<object>(DisAnomation);
 
-            BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
+             BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
             InConList = new ObservableCollection<BasPlcItemConfigDto>();
             OutConList = new ObservableCollection<BasPlcItemConfigDto>();
            
@@ -72,12 +72,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             GetConfigOption();
         }
 
-     
-
-
-
-
-
+       
 
 
 
@@ -248,6 +243,15 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             schDtlMainId = schDtlId;//全局变量赋值,测试方案明细id
             GetDetaiMsg(schDtlId);
         }
+        /// <summary>
+        /// 显示侧边栏
+        /// </summary>
+        /// <param name="obj"></param>
+        /// <exception cref="NotImplementedException"></exception>
+        private void DisAnomation(object obj)
+        {
+            
+        }
 
         /// <summary>
         /// 保存所有测试项
@@ -420,7 +424,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
 
         }
 
-        private void OnLoad()
+        private void OnLoad(object obj)
         {
             
         }
@@ -787,7 +791,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
                     if (isAddSucc)
                     {
                         _logger.LogInformation($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
-                        MessageBoxResult boxResult = MessageBox.Show("新增方案成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
+                        MessageBoxResult boxResult = MessageBox.Show("新增测试项成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                     }
                     else
                     {
@@ -930,13 +934,15 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
 
         public DelegateCommand<Object> EditOutCommand { set; get; }
 
-        public DelegateCommand OnLoadCommand { set; get; }
+        public DelegateCommand<Object> OnLoadCommand { set; get; }
         public DelegateCommand TxtLostFocusCommand { set; get; }
         public DelegateCommand<string> OpenExistCommand { set; get; }
         public DelegateCommand<object> DownCommand { set; get; }
         public DelegateCommand<object> UpCommand { set; get; }
         public DelegateCommand<object> SaveAllSchCommand { set; get; }
         public DelegateCommand<object> EditDetailCommand { set; get; }
+
+        public DelegateCommand<object> DisAnoCommand { set; get; }
         
         #endregion
         #region 变量绑定
@@ -1087,6 +1093,8 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             get { return selectOutJudge; }
             set { selectOutJudge = value; RaisePropertyChanged(); }
         }
+      
+        
         /// <summary>
         /// 逻辑判断
         /// </summary>
@@ -1132,6 +1140,8 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             get { return schProjectList; }
             set { SetProperty(ref schProjectList, value); }
         }
+
+     
         #endregion
 
     }

+ 361 - 318
BlankApp1/BlankApp1/Views/BasicConfigView/AddOrEditSchView.xaml

@@ -7,7 +7,7 @@
              xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
              xmlns:prism="http://prismlibrary.com/" 
              BorderBrush="#CBCBCB" BorderThickness="1"
-             Height="700" Width="1000" >
+             Height="700" Width="1100" >
     <!--<prism:Dialog.WindowStyle>
         <Style TargetType="Window">
             <Setter Property="SizeToContent" Value="WidthAndHeight" />
@@ -25,377 +25,420 @@
             <Setter Property="TextAlignment" Value="Right"/>
             <Setter Property="Margin" Value="0,0,5,0"/>
         </Style>
+
+        <!--侧滑栏弹出动画-,控制RenderTransfer的x轴坐标-->
+        <Storyboard x:Key="UserInfoStoryboard">
+            <DoubleAnimation Duration="0:0:0.2" To="200"
+                                   Storyboard.TargetName="tt"
+                                   Storyboard.TargetProperty="X"/>
+        </Storyboard>
+        <!--侧滑栏关闭动画-,控制RenderTransfer的x轴坐标-->
+        <Storyboard x:Key="CloseUserInfoStoryboard">
+            <DoubleAnimation Duration="0:0:0.1"
+                                   Storyboard.TargetName="tt"
+                                   Storyboard.TargetProperty="X"/>
+        </Storyboard>
     </UserControl.Resources>
 
     <Grid>
         <b:Interaction.Triggers>
             <b:EventTrigger EventName="Loaded">
-                <b:InvokeCommandAction Command="{Binding OnLoadCommand}"/>
+                <b:InvokeCommandAction Command="{Binding OnLoadCommand}" CommandParameter="{Binding ElementName=tt}"/>
             </b:EventTrigger>
         </b:Interaction.Triggers>
-        <Grid.RowDefinitions>
-            <RowDefinition Height="50" />
-            <RowDefinition Height="200" />
-            <RowDefinition />
-   
-        </Grid.RowDefinitions>
-
-        <StackPanel Orientation="Horizontal" Grid.Row="0" Margin="10">
-            <StackPanel Orientation="Horizontal"  Grid.Row="4" HorizontalAlignment="Center">
-                <TextBlock Text="所属设备类型:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0" TextAlignment="Right" Width="80"/>
-                <ComboBox  Height="28" Width="120" ItemsSource="{Binding DeviceKindNameList}" SelectedItem="{Binding DeviceKindName}" />
-            </StackPanel>
-            <StackPanel Orientation="Horizontal">
-                <TextBlock Text="测试方案名称:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
-                <TextBox  Height="28" Width="120" Text="{Binding ScheduleName}" >
-                    <b:Interaction.Triggers>
-                        <b:EventTrigger EventName="LostFocus">
-                            <b:InvokeCommandAction Command="{Binding TxtLostFocusCommand}" CommandParameter="{Binding ElementName=TBSeriesDescription}"/>
-                        </b:EventTrigger>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition/>
+            <ColumnDefinition Width="300"/>
+        </Grid.ColumnDefinitions>
+        <Grid Grid.Column="0"  x:Name="EditGrid" Grid.ColumnSpan="2">
 
-                    </b:Interaction.Triggers>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="50" />
+
+                <RowDefinition />
+
+            </Grid.RowDefinitions>
+
+            <StackPanel Orientation="Horizontal" Grid.Row="0" Margin="10">
+                <StackPanel Orientation="Horizontal"  Grid.Row="4" HorizontalAlignment="Center">
+                    <TextBlock Text="所属设备类型:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0" TextAlignment="Right" Width="80"/>
+                    <ComboBox  Height="28" Width="120" ItemsSource="{Binding DeviceKindNameList}" SelectedItem="{Binding DeviceKindName}" />
+                </StackPanel>
+                <StackPanel Orientation="Horizontal">
+                    <TextBlock Text="测试方案名称:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                    <TextBox  Height="28" Width="120" Text="{Binding ScheduleName}" >
+                        <b:Interaction.Triggers>
+                            <b:EventTrigger EventName="LostFocus">
+                                <b:InvokeCommandAction Command="{Binding TxtLostFocusCommand}" CommandParameter="{Binding ElementName=TBSeriesDescription}"/>
+                            </b:EventTrigger>
+
+                        </b:Interaction.Triggers>
+
+                    </TextBox>
+                </StackPanel>
+
+                <Button  Content="保存测试方案" Width="80"  Margin="5,0"  Command="{Binding SaveAllSchCommand}" Style="{StaticResource NormalButtonStyle}" />
 
-                </TextBox>
             </StackPanel>
+            <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="0,1" />
 
-            <Button  Content="保存测试方案" Width="80"  Margin="5,0"  Command="{Binding SaveAllSchCommand}" Style="{StaticResource NormalButtonStyle}" />
-            
-        </StackPanel>
-        <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="0,1" />
-        <Expander  Grid.Row="1" IsExpanded="True">
-            <Expander.Header>
-                <Label Content="已有测试项" FontSize="10"/>
-            </Expander.Header>
-            <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
-   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2" 
-  ItemsSource="{Binding SchProjectList}" IsReadOnly="True" Margin="5" Padding="0" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" >
-                <b:Interaction.Triggers>
-                    <b:EventTrigger EventName="SelectionChanged">
-                        <b:InvokeCommandAction Command="{Binding DgSelectChangeCommand}" CommandParameter="{Binding SchDtlId}"/>
-                    </b:EventTrigger>
-                </b:Interaction.Triggers>
-                <DataGrid.Columns >
-                    <DataGridTextColumn Header="测试项" Binding="{Binding ItemName}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                    <DataGridTextColumn Header="测试项类型" Binding="{Binding ItemType}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                    <DataGridTemplateColumn Header="操作" Width="240" CellStyle="{StaticResource MyDataGridCellStyle}">
-                        <DataGridTemplateColumn.CellTemplate>
-                            <DataTemplate>
-                                <StackPanel Orientation="Horizontal">
-                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
-        Command="{Binding DataContext.UpCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchDtlId}" Cursor="Hand" Margin="0,0,10,0" >
-
-                                        <StackPanel Orientation="Horizontal">
-                                            <TextBlock  Text="上移↑" VerticalAlignment="Center" Foreground="Blue"/>
-                                        </StackPanel>
-                                    </Button>
-                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
-        Command="{Binding DataContext.DownCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchDtlId}" Cursor="Hand" Margin="0,0,10,0">
-                                        <StackPanel Orientation="Horizontal">
-                                            <TextBlock  Text="下移↓" VerticalAlignment="Center" Foreground="Blue"/>
-                                        </StackPanel>
-                                    </Button>
-                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
-                                        Command="{Binding DataContext.EditDetailCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchDtlId}" Cursor="Hand" Margin="0,0,10,0">
-                                        <StackPanel Orientation="Horizontal">
-                                            <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
-                                        </StackPanel>
-                                    </Button>
-                                </StackPanel>
-                            </DataTemplate>
-                        </DataGridTemplateColumn.CellTemplate>
-                    </DataGridTemplateColumn>
-                </DataGrid.Columns>
-
-            </DataGrid>
-        </Expander>
-
-        <Expander  Grid.Row="2" IsExpanded="True" >
-            <Expander.Header>
-                <Label Content="新增测试项" FontSize="10"/>
-            </Expander.Header>
-            <Grid>
-                <Grid.RowDefinitions>
-                    <RowDefinition Height="50"/>
-                    <RowDefinition/>
-                    <RowDefinition/>
-                    <RowDefinition/>
-                    <RowDefinition Height="50"/>
-                </Grid.RowDefinitions>
-                <StackPanel Grid.Row="0" Orientation="Horizontal">
-                    <Button HorizontalAlignment="Left"  Content="选择已有测试项" Width="100"  Margin="5,0"  Command="{Binding OpenExistCommand}" CommandParameter="{Binding DeviceKindName}" Style="{StaticResource NormalButtonStyle}"  />
-                    <StackPanel Orientation="Horizontal" >
-                        <TextBlock Text="测试项类型:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
-                        <ComboBox  Height="28" Width="120" ItemsSource="{Binding TestKinds}" SelectedItem="{Binding SelectTest}" />
-                    </StackPanel>
-                    <StackPanel Orientation="Horizontal">
-                        <TextBlock Text="测试项名称:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
-                        <TextBox  Height="28" Width="120"  Text="{Binding TestName}"/>
+
+            <Expander  Grid.Row="1" IsExpanded="True" >
+                <Expander.Header>
+                    <Label Content="新增测试项" FontSize="10"/>
+                </Expander.Header>
+                <Grid>
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="50"/>
+                        <RowDefinition/>
+                        <RowDefinition/>
+                        <RowDefinition/>
+                        <RowDefinition Height="50"/>
+                    </Grid.RowDefinitions>
+                    <StackPanel Grid.Row="0" Orientation="Horizontal">
+                        <Button HorizontalAlignment="Left"  Content="选择已有测试项" Width="100"  Margin="5,0"  Command="{Binding OpenExistCommand}" CommandParameter="{Binding DeviceKindName}" Style="{StaticResource NormalButtonStyle}"  />
+                        <StackPanel Orientation="Horizontal" >
+                            <TextBlock Text="测试项类型:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                            <ComboBox  Height="28" Width="120" ItemsSource="{Binding TestKinds}" SelectedItem="{Binding SelectTest}" />
+                        </StackPanel>
+                        <StackPanel Orientation="Horizontal">
+                            <TextBlock Text="测试项名称:"  Style="{StaticResource NormalTextBlockStyle}" Margin="10,0,5,0"/>
+                            <TextBox  Height="28" Width="120"  Text="{Binding TestName}"/>
+                        </StackPanel>
                     </StackPanel>
-                </StackPanel>
-             
-                <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="1" />
-                <ScrollViewer Grid.Row="1">
-                    <Grid >
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="80"/>
-                            <ColumnDefinition/>
-                            <ColumnDefinition Width="1.3*"/>
-                        </Grid.ColumnDefinitions>
-                        <TextBlock Grid.Column="0" Text="前置项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
-                        </TextBlock>
-                        <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
-                        <Grid Grid.Column="1">
-                            <Grid.RowDefinitions>
-                                <RowDefinition/>
-                                <RowDefinition/>
-                                <RowDefinition Height="2*"/>
-                            </Grid.RowDefinitions>
-                            <Grid Grid.Row="0">
-                                <StackPanel Orientation="Horizontal" >
-                                    <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
-                                    <ComboBox  Height="28" Width="150" ItemsSource="{Binding BeforeJudgeKinds}" SelectedItem="{Binding BeforeSelectJudge}" />
-                                </StackPanel>
-                            </Grid>
-                            <Grid Grid.Row="1"  >
-                                <StackPanel Orientation="Horizontal" >
-                                    <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
-                                    <ComboBox  Height="28" Width="150" ItemsSource="{Binding JudgeLogicKinds}" SelectedItem="{Binding SelectLogic}"/>
-                                </StackPanel>
-                            </Grid>
-                            <Grid Grid.Row="2">
-                                <DockPanel LastChildFill="True" >
-                                    <TextBlock Text="前置项描述:"   Style="{StaticResource textBlockStyle}" />
-                                    <TextBox x:Name="txtBefore"  TextWrapping="Wrap"  Text="{Binding BeforeDetail }"  AcceptsReturn="True" KeyDown="txtBefore_KeyDown"/>
 
-                                </DockPanel>
+                    <Border Grid.Row="0"  BorderBrush="#CBCBCB" BorderThickness="1" />
+                    <ScrollViewer Grid.Row="1">
+                        <Grid >
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="80"/>
+                                <ColumnDefinition/>
+                                <ColumnDefinition Width="1.3*"/>
+                            </Grid.ColumnDefinitions>
+                            <TextBlock Grid.Column="0" Text="前置项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
+                            </TextBlock>
+                            <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+                            <Grid Grid.Column="1">
+                                <Grid.RowDefinitions>
+                                    <RowDefinition/>
+                                    <RowDefinition/>
+                                    <RowDefinition Height="2*"/>
+                                </Grid.RowDefinitions>
+                                <Grid Grid.Row="0">
+                                    <StackPanel Orientation="Horizontal" >
+                                        <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
+                                        <ComboBox  Height="28" Width="150" ItemsSource="{Binding BeforeJudgeKinds}" SelectedItem="{Binding BeforeSelectJudge}" />
+                                    </StackPanel>
+                                </Grid>
+                                <Grid Grid.Row="1"  >
+                                    <StackPanel Orientation="Horizontal" >
+                                        <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
+                                        <ComboBox  Height="28" Width="150" ItemsSource="{Binding JudgeLogicKinds}" SelectedItem="{Binding SelectLogic}"/>
+                                    </StackPanel>
+                                </Grid>
+                                <Grid Grid.Row="2">
+                                    <DockPanel LastChildFill="True" >
+                                        <TextBlock Text="前置项描述:"   Style="{StaticResource textBlockStyle}" />
+                                        <TextBox x:Name="txtBefore"  TextWrapping="Wrap"  Text="{Binding BeforeDetail }"  AcceptsReturn="True" KeyDown="txtBefore_KeyDown"/>
+
+                                    </DockPanel>
+                                </Grid>
                             </Grid>
-                        </Grid>
-                        <Grid Grid.Column="2" >
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="30"/>
-                                <RowDefinition/>
-                            </Grid.RowDefinitions>
-                            <DockPanel LastChildFill="False">
-                                <TextBlock Text="前置项明细:"   Style="{StaticResource textBlockStyle}" />
-                                <Button  Content="新增" Height="22" Width="60"  Margin="5,0"  Command="{Binding AddDetailCommand}" CommandParameter="Before" Style="{StaticResource NormalButtonStyle}" DockPanel.Dock="Right"  />
-                            </DockPanel>
-                            <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
+                            <Grid Grid.Column="2" >
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="30"/>
+                                    <RowDefinition/>
+                                </Grid.RowDefinitions>
+                                <DockPanel LastChildFill="False">
+                                    <TextBlock Text="前置项明细:"   Style="{StaticResource textBlockStyle}" />
+                                    <Button  Content="新增" Height="22" Width="60"  Margin="5,0"  Command="{Binding AddDetailCommand}" CommandParameter="Before" Style="{StaticResource NormalButtonStyle}" DockPanel.Dock="Right"  />
+                                </DockPanel>
+                                <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" x:Name="DeviceDataGrid" RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
     ItemsSource="{Binding BeforeConList}"  IsReadOnly="True" Padding="0" >
-                                <DataGrid.Columns >
-                                    <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                                    <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                                    <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                                    <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                                    <DataGridTemplateColumn Header="操作" Width="160"  CellStyle="{StaticResource MyDataGridCellStyle}">
-                                        <DataGridTemplateColumn.CellTemplate>
-                                            <DataTemplate>
-                                                <UniformGrid Columns="2">
-                                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                    <DataGrid.Columns >
+                                        <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                                        <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                                        <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                                        <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                                        <DataGridTemplateColumn Header="操作" Width="160"  CellStyle="{StaticResource MyDataGridCellStyle}">
+                                            <DataGridTemplateColumn.CellTemplate>
+                                                <DataTemplate>
+                                                    <UniformGrid Columns="2">
+                                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
 Command="{Binding DataContext.EditBeforeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Cursor="Hand" Margin="0,0,10,0" >
 
-                                                        <StackPanel Orientation="Horizontal">
-                                                            <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
-                                                        </StackPanel>
-                                                    </Button>
-                                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                                            <StackPanel Orientation="Horizontal">
+                                                                <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
+                                                            </StackPanel>
+                                                        </Button>
+                                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
 Command="{Binding DataContext.DeleteBeforeCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding Id}"   Cursor="Hand" >
 
-                                                        <StackPanel Orientation="Horizontal">
-                                                            <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
-                                                        </StackPanel>
-                                                    </Button>
+                                                            <StackPanel Orientation="Horizontal">
+                                                                <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
+                                                            </StackPanel>
+                                                        </Button>
 
-                                                </UniformGrid>
-                                            </DataTemplate>
-                                        </DataGridTemplateColumn.CellTemplate>
-                                    </DataGridTemplateColumn>
+                                                    </UniformGrid>
+                                                </DataTemplate>
+                                            </DataGridTemplateColumn.CellTemplate>
+                                        </DataGridTemplateColumn>
 
-                                </DataGrid.Columns>
+                                    </DataGrid.Columns>
 
-                            </DataGrid>
+                                </DataGrid>
 
-                        </Grid>
-                    </Grid>
-                </ScrollViewer>
-                <ScrollViewer Grid.Row="2">
-                    <Grid >
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="80"/>
-                            <ColumnDefinition/>
-                            <ColumnDefinition Width="1.3*"/>
-                        </Grid.ColumnDefinitions>
-                        <TextBlock Grid.Column="0" Text="输入项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
-                        </TextBlock>
-                        <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
-                        <Grid Grid.Column="1">
-                            <Grid.RowDefinitions>
-                                <RowDefinition/>
-                                <RowDefinition/>
-                                <RowDefinition Height="2*"/>
-                            </Grid.RowDefinitions>
-                            <Grid Grid.Row="0">
-                                <StackPanel Orientation="Horizontal" >
-                                    <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
-                                    <ComboBox  Height="28" Width="150" ItemsSource="{Binding InJudgeKinds}" SelectedItem="{Binding SelectInJudge}" />
-                                </StackPanel>
-                            </Grid>
-                            <Grid Grid.Row="1"  >
-                                <StackPanel Orientation="Horizontal" >
-                                    <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
-                                    <ComboBox  Height="28" Width="150" ItemsSource="{Binding InJudgeLogicKinds}" SelectedItem="{Binding InSelectLogic}"/>
-                                </StackPanel>
                             </Grid>
-                            <Grid Grid.Row="2">
-                                <DockPanel LastChildFill="True" >
-                                    <TextBlock Text="输入项描述:"   Style="{StaticResource textBlockStyle}" />
-                                    <TextBox x:Name="txtIn"  TextWrapping="Wrap"  Text="{Binding InDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  AcceptsReturn="True" KeyDown="txtIn_KeyDown"/>
+                        </Grid>
+                    </ScrollViewer>
+                    <ScrollViewer Grid.Row="2">
+                        <Grid >
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="80"/>
+                                <ColumnDefinition/>
+                                <ColumnDefinition Width="1.3*"/>
+                            </Grid.ColumnDefinitions>
+                            <TextBlock Grid.Column="0" Text="输入项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
+                            </TextBlock>
+                            <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+                            <Grid Grid.Column="1">
+                                <Grid.RowDefinitions>
+                                    <RowDefinition/>
+                                    <RowDefinition/>
+                                    <RowDefinition Height="2*"/>
+                                </Grid.RowDefinitions>
+                                <Grid Grid.Row="0">
+                                    <StackPanel Orientation="Horizontal" >
+                                        <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
+                                        <ComboBox  Height="28" Width="150" ItemsSource="{Binding InJudgeKinds}" SelectedItem="{Binding SelectInJudge}" />
+                                    </StackPanel>
+                                </Grid>
+                                <Grid Grid.Row="1"  >
+                                    <StackPanel Orientation="Horizontal" >
+                                        <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
+                                        <ComboBox  Height="28" Width="150" ItemsSource="{Binding InJudgeLogicKinds}" SelectedItem="{Binding InSelectLogic}"/>
+                                    </StackPanel>
+                                </Grid>
+                                <Grid Grid.Row="2">
+                                    <DockPanel LastChildFill="True" >
+                                        <TextBlock Text="输入项描述:"   Style="{StaticResource textBlockStyle}" />
+                                        <TextBox x:Name="txtIn"  TextWrapping="Wrap"  Text="{Binding InDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  AcceptsReturn="True" KeyDown="txtIn_KeyDown"/>
 
-                                </DockPanel>
+                                    </DockPanel>
+                                </Grid>
                             </Grid>
-                        </Grid>
-                        <Grid Grid.Column="2" >
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="30"/>
-                                <RowDefinition/>
-                            </Grid.RowDefinitions>
-                            <DockPanel LastChildFill="False">
-                                <TextBlock Text="输入项明细:"   Style="{StaticResource textBlockStyle}" />
-                                <Button  Content="新增" Height="22" Width="60"  Margin="5,0"  Command="{Binding AddDetailCommand}" CommandParameter="In" Style="{StaticResource NormalButtonStyle}" DockPanel.Dock="Right"  />
-                            </DockPanel>
-                            <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
+                            <Grid Grid.Column="2" >
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="30"/>
+                                    <RowDefinition/>
+                                </Grid.RowDefinitions>
+                                <DockPanel LastChildFill="False">
+                                    <TextBlock Text="输入项明细:"   Style="{StaticResource textBlockStyle}" />
+                                    <Button  Content="新增" Height="22" Width="60"  Margin="5,0"  Command="{Binding AddDetailCommand}" CommandParameter="In" Style="{StaticResource NormalButtonStyle}" DockPanel.Dock="Right"  />
+                                </DockPanel>
+                                <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
     ItemsSource="{Binding InConList}"  IsReadOnly="True" Padding="0" >
-                                <DataGrid.Columns >
-                                    <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                                    <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                                    <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                                    <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                                    <DataGridTemplateColumn Header="操作" Width="160"  CellStyle="{StaticResource MyDataGridCellStyle}">
-                                        <DataGridTemplateColumn.CellTemplate>
-                                            <DataTemplate>
-                                                <UniformGrid Columns="2">
-                                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                    <DataGrid.Columns >
+                                        <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                                        <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                                        <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                                        <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                                        <DataGridTemplateColumn Header="操作" Width="160"  CellStyle="{StaticResource MyDataGridCellStyle}">
+                                            <DataGridTemplateColumn.CellTemplate>
+                                                <DataTemplate>
+                                                    <UniformGrid Columns="2">
+                                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
 Command="{Binding DataContext.EditInCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Cursor="Hand" Margin="0,0,10,0" >
 
-                                                        <StackPanel Orientation="Horizontal">
-                                                            <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
-                                                        </StackPanel>
-                                                    </Button>
-                                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                                            <StackPanel Orientation="Horizontal">
+                                                                <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
+                                                            </StackPanel>
+                                                        </Button>
+                                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
 Command="{Binding DataContext.DeleteInCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding Id}"   Cursor="Hand" >
 
-                                                        <StackPanel Orientation="Horizontal">
-                                                            <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
-                                                        </StackPanel>
-                                                    </Button>
+                                                            <StackPanel Orientation="Horizontal">
+                                                                <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
+                                                            </StackPanel>
+                                                        </Button>
 
-                                                </UniformGrid>
-                                            </DataTemplate>
-                                        </DataGridTemplateColumn.CellTemplate>
-                                    </DataGridTemplateColumn>
+                                                    </UniformGrid>
+                                                </DataTemplate>
+                                            </DataGridTemplateColumn.CellTemplate>
+                                        </DataGridTemplateColumn>
 
-                                </DataGrid.Columns>
+                                    </DataGrid.Columns>
 
-                            </DataGrid>
+                                </DataGrid>
 
-                        </Grid>
-                    </Grid>
-                </ScrollViewer>
-                  
-                <Border Grid.Row="2"  BorderBrush="#CBCBCB" BorderThickness="0,1,0,0" />
-            
-                <ScrollViewer Grid.Row="3">
-                    <Grid >
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="80"/>
-                            <ColumnDefinition/>
-                            <ColumnDefinition Width="1.3*"/>
-                        </Grid.ColumnDefinitions>
-                        <TextBlock Grid.Column="0" Text="结果项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
-                        </TextBlock>
-                        <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
-                        <Grid Grid.Column="1">
-                            <Grid.RowDefinitions>
-                                <RowDefinition/>
-                                <RowDefinition/>
-                                <RowDefinition Height="2*"/>
-                            </Grid.RowDefinitions>
-                            <Grid Grid.Row="0">
-                                <StackPanel Orientation="Horizontal" >
-                                    <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
-                                    <ComboBox  Height="28" Width="150" ItemsSource="{Binding OutJudgeKinds}" SelectedItem="{Binding SelectOutJudge}" />
-                                </StackPanel>
                             </Grid>
-                            <Grid Grid.Row="1"  >
-                                <StackPanel Orientation="Horizontal" >
-                                    <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
-                                    <ComboBox  Height="28" Width="150" ItemsSource="{Binding OutJudgeLogicKinds}" SelectedItem="{Binding OutSelectLogic}"/>
-                                </StackPanel>
-                            </Grid>
-                            <Grid Grid.Row="2">
-                                <DockPanel LastChildFill="True" >
-                                    <TextBlock Text="结果项描述:"   Style="{StaticResource textBlockStyle}" />
+                        </Grid>
+                    </ScrollViewer>
 
-                                    <TextBox x:Name="txtOut"  TextWrapping="Wrap"  Text="{Binding OutDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  AcceptsReturn="True" KeyDown="txtOut_KeyDown"/>
+                    <Border Grid.Row="2"  BorderBrush="#CBCBCB" BorderThickness="0,1,0,0" />
 
-                                </DockPanel>
+                    <ScrollViewer Grid.Row="3">
+                        <Grid >
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="80"/>
+                                <ColumnDefinition/>
+                                <ColumnDefinition Width="1.3*"/>
+                            </Grid.ColumnDefinitions>
+                            <TextBlock Grid.Column="0" Text="结果项" Style="{StaticResource NormalTextBlockStyle}" TextAlignment="Center">
+                            </TextBlock>
+                            <Border Grid.Column="1"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
+                            <Grid Grid.Column="1">
+                                <Grid.RowDefinitions>
+                                    <RowDefinition/>
+                                    <RowDefinition/>
+                                    <RowDefinition Height="2*"/>
+                                </Grid.RowDefinitions>
+                                <Grid Grid.Row="0">
+                                    <StackPanel Orientation="Horizontal" >
+                                        <TextBlock Text="测试项类型:"  Style="{StaticResource textBlockStyle}"/>
+                                        <ComboBox  Height="28" Width="150" ItemsSource="{Binding OutJudgeKinds}" SelectedItem="{Binding SelectOutJudge}" />
+                                    </StackPanel>
+                                </Grid>
+                                <Grid Grid.Row="1"  >
+                                    <StackPanel Orientation="Horizontal" >
+                                        <TextBlock Text="明细判定逻辑:"  Style="{StaticResource textBlockStyle}"/>
+                                        <ComboBox  Height="28" Width="150" ItemsSource="{Binding OutJudgeLogicKinds}" SelectedItem="{Binding OutSelectLogic}"/>
+                                    </StackPanel>
+                                </Grid>
+                                <Grid Grid.Row="2">
+                                    <DockPanel LastChildFill="True" >
+                                        <TextBlock Text="结果项描述:"   Style="{StaticResource textBlockStyle}" />
+
+                                        <TextBox x:Name="txtOut"  TextWrapping="Wrap"  Text="{Binding OutDetail,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  AcceptsReturn="True" KeyDown="txtOut_KeyDown"/>
+
+                                    </DockPanel>
+                                </Grid>
                             </Grid>
-                        </Grid>
-                        <Grid Grid.Column="2" >
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="30"/>
-                                <RowDefinition/>
-                            </Grid.RowDefinitions>
-                            <DockPanel LastChildFill="False">
-                                <TextBlock Text="结果项明细:"   Style="{StaticResource textBlockStyle}" />
-                                <Button  Content="新增" Height="22" Width="60"  Margin="5,0"  Command="{Binding AddDetailCommand}" CommandParameter="Out" Style="{StaticResource NormalButtonStyle}" DockPanel.Dock="Right"  />
-                            </DockPanel>
-                            <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
+                            <Grid Grid.Column="2" >
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="30"/>
+                                    <RowDefinition/>
+                                </Grid.RowDefinitions>
+                                <DockPanel LastChildFill="False">
+                                    <TextBlock Text="结果项明细:"   Style="{StaticResource textBlockStyle}" />
+                                    <Button  Content="新增" Height="22" Width="60"  Margin="5,0"  Command="{Binding AddDetailCommand}" CommandParameter="Out" Style="{StaticResource NormalButtonStyle}" DockPanel.Dock="Right"  />
+                                </DockPanel>
+                                <DataGrid Grid.Row="1"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled"
   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
     ItemsSource="{Binding OutConList}"  IsReadOnly="True" Padding="0" >
-                                <DataGrid.Columns >
-                                    <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                                    <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                                    <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                                    <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                                    <DataGridTemplateColumn Header="操作" Width="160"  CellStyle="{StaticResource MyDataGridCellStyle}">
-                                        <DataGridTemplateColumn.CellTemplate>
-                                            <DataTemplate>
-                                                <UniformGrid Columns="2">
-                                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                    <DataGrid.Columns >
+                                        <DataGridTextColumn Header="序号" Width="40" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                                        <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                                        <DataGridTextColumn Header="PLC变量名" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                                        <DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                                        <DataGridTemplateColumn Header="操作" Width="160"  CellStyle="{StaticResource MyDataGridCellStyle}">
+                                            <DataGridTemplateColumn.CellTemplate>
+                                                <DataTemplate>
+                                                    <UniformGrid Columns="2">
+                                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
 Command="{Binding DataContext.EditOutCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Cursor="Hand" Margin="0,0,10,0" >
 
-                                                        <StackPanel Orientation="Horizontal">
-                                                            <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
-                                                        </StackPanel>
-                                                    </Button>
-                                                    <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                                            <StackPanel Orientation="Horizontal">
+                                                                <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
+                                                            </StackPanel>
+                                                        </Button>
+                                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
 Command="{Binding DataContext.DeleteOutCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding Id}"   Cursor="Hand" >
 
-                                                        <StackPanel Orientation="Horizontal">
-                                                            <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
-                                                        </StackPanel>
-                                                    </Button>
+                                                            <StackPanel Orientation="Horizontal">
+                                                                <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
+                                                            </StackPanel>
+                                                        </Button>
 
-                                                </UniformGrid>
-                                            </DataTemplate>
-                                        </DataGridTemplateColumn.CellTemplate>
-                                    </DataGridTemplateColumn>
+                                                    </UniformGrid>
+                                                </DataTemplate>
+                                            </DataGridTemplateColumn.CellTemplate>
+                                        </DataGridTemplateColumn>
 
-                                </DataGrid.Columns>
+                                    </DataGrid.Columns>
 
-                            </DataGrid>
+                                </DataGrid>
 
+                            </Grid>
                         </Grid>
-                    </Grid>
-                </ScrollViewer>
+                    </ScrollViewer>
                     <Border Grid.Row="3"  BorderBrush="#CBCBCB" BorderThickness="0,1" />
-                <Button Grid.Row="4" HorizontalAlignment="Right" Content="保存测试项" Width="80"  Margin="5,0"  Command="{Binding SureCommand}" Style="{StaticResource NormalButtonStyle}" />
+                    <Button Grid.Row="4" HorizontalAlignment="Right" Content="保存测试项" Width="80"  Margin="5,0"  Command="{Binding SureCommand}" Style="{StaticResource NormalButtonStyle}" />
+                </Grid>
+
+            </Expander>
+
+        </Grid>
+        <Grid Grid.Column="1">
+            <StackPanel>
+                <Button Name="btnAlarm"   Content=">>打开已有项" Height="24"   Style="{StaticResource NormalButtonStyle}"
+              Width="auto" HorizontalAlignment="Right"  Cursor="Hand" Command="{Binding DisAnoCommand}" Click="btnAlarm_Click"/>
+            </StackPanel>
+        </Grid>
+        <!--抽屉侧滑栏-->
+        <!--侧滑栏弹出是通过RenderTransform的x轴的变化动画来实现的,通过按钮的click的EventTrigger-->
+        <Border  Width="300" HorizontalAlignment="Right"  IsHitTestVisible="True" Margin="0,30,0,0" >
+        
+            <!--通过RenderTransform的X坐标变为0的动画实现侧滑栏弹出-->
+            <Border.RenderTransform>
+                <TranslateTransform X="600" x:Name="tt"/>
+            </Border.RenderTransform>
+            <Grid>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="35"/>
+                    <RowDefinition />
+           
+                </Grid.RowDefinitions>
+                <TextBlock Grid.Row="0" Text="已有测试项" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="16" Foreground="Black" Margin="5,0,0,0"/>
+
+
+           
+                <DataGrid  Grid.Row="2"  ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
+ ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2" 
+ItemsSource="{Binding SchProjectList}" IsReadOnly="True" Margin="5" Padding="0" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" >
+                    <b:Interaction.Triggers>
+                        <b:EventTrigger EventName="SelectionChanged">
+                            <b:InvokeCommandAction Command="{Binding DgSelectChangeCommand}" CommandParameter="{Binding SchDtlId}"/>
+                        </b:EventTrigger>
+                    </b:Interaction.Triggers>
+                    <DataGrid.Columns >
+                        <DataGridTextColumn Header="测试项" Binding="{Binding ItemName}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                        <DataGridTextColumn Header="测试项类型" Binding="{Binding ItemType}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                        <DataGridTemplateColumn Header="操作" Width="120" CellStyle="{StaticResource MyDataGridCellStyle}">
+                            <DataGridTemplateColumn.CellTemplate>
+                                <DataTemplate>
+                                    <StackPanel Orientation="Horizontal">
+                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+      Command="{Binding DataContext.UpCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchDtlId}" Cursor="Hand" Margin="0,0,10,0" >
+
+                                            <StackPanel Orientation="Horizontal">
+                                                <TextBlock  Text="上移↑" VerticalAlignment="Center" Foreground="Blue"/>
+                                            </StackPanel>
+                                        </Button>
+                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+      Command="{Binding DataContext.DownCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchDtlId}" Cursor="Hand" Margin="0,0,10,0">
+                                            <StackPanel Orientation="Horizontal">
+                                                <TextBlock  Text="下移↓" VerticalAlignment="Center" Foreground="Blue"/>
+                                            </StackPanel>
+                                        </Button>
+                                        <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
+                                      Command="{Binding DataContext.EditDetailCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" CommandParameter="{Binding SchDtlId}" Cursor="Hand" Margin="0,0,10,0">
+                                            <StackPanel Orientation="Horizontal">
+                                                <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
+                                            </StackPanel>
+                                        </Button>
+                                    </StackPanel>
+                                </DataTemplate>
+                            </DataGridTemplateColumn.CellTemplate>
+                        </DataGridTemplateColumn>
+                    </DataGrid.Columns>
+
+                </DataGrid>
+
             </Grid>
-          
-        </Expander>
-       
+        </Border>
     </Grid>
 </UserControl>
 

+ 40 - 0
BlankApp1/BlankApp1/Views/BasicConfigView/AddOrEditSchView.xaml.cs

@@ -9,6 +9,7 @@ using System.Windows.Data;
 using System.Windows.Documents;
 using System.Windows.Input;
 using System.Windows.Media;
+using System.Windows.Media.Animation;
 using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.Windows.Shapes;
@@ -61,5 +62,44 @@ namespace PLCTool.Views.BasicConfigView
             }
 
         }
+
+        private void btnAlarm_Click(object sender, RoutedEventArgs e)
+        {
+            if (btnAlarm.Content.ToString() == ">>打开已有项")
+            {
+                //另一列显示已有项
+                this.EditGrid.SetValue(Grid.ColumnSpanProperty, 1);
+                btnAlarm.Content = ">>收起已有项";
+                DoubleAnimation daX = new DoubleAnimation();
+                //指定起点
+                daX.From = 600;
+                //指定终点
+                daX.To = 300;
+                //指定时长
+                Duration duration = new Duration(TimeSpan.FromMilliseconds(200));
+                daX.Duration = duration;
+                //动画的主题是TranslateTransform变形,而非Button
+                tt.BeginAnimation(TranslateTransform.XProperty, daX);
+            }
+            else
+            {
+                if (btnAlarm.Content.ToString() == ">>收起已有项")
+                {    //横跨两列
+                    this.EditGrid.SetValue(Grid.ColumnSpanProperty, 2);
+                    btnAlarm.Content = ">>打开已有项";
+                    DoubleAnimation daX = new DoubleAnimation();
+                    //指定起点
+                    daX.From = 300;
+                    //指定终点
+                    daX.To = 600;
+                    //指定时长
+                    Duration duration = new Duration(TimeSpan.FromMilliseconds(200));
+                    daX.Duration = duration;
+                    //动画的主题是TranslateTransform变形,而非Button
+                    tt.BeginAnimation(TranslateTransform.XProperty, daX);
+                }
+
+            }
+        }
     }
 }