Procházet zdrojové kódy

plc值0和1 改为颜色显示

ltwork před 1 rokem
rodič
revize
4ab7add710

+ 39 - 0
BlankApp1/BlankApp1/Controls/Convert/ValueToLedAndValueConverter.cs

@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace PLCTool.Controls.Convert
+{
+    internal class ValueToLedAndValueConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+           
+                switch (value)
+                {
+                    case "0":
+                        return new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#D1D1D1"));
+                    case "1":
+                        return new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#409EFF"));
+                default:
+                        return value?.ToString();
+                }
+            
+            
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+
+
+    }
+}

+ 35 - 0
BlankApp1/BlankApp1/Controls/Convert/ValueToTxtVisibilityConverter.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace PLCTool.Controls.Convert
+{
+    internal class ValueToTxtVisibilityConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            switch (value)
+            {
+                case "0":
+                case "1":
+                    return Visibility.Collapsed;
+
+                default:
+                    return Visibility.Visible;
+            }
+
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}
+
+

+ 35 - 0
BlankApp1/BlankApp1/Controls/Convert/ValueToVisibilityConverter.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace PLCTool.Controls.Convert
+{
+    public  class ValueToVisibilityConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            switch (value)
+            {
+                case "0":
+                case "1":
+                   return  Visibility.Visible;
+                
+                default:
+                    return Visibility.Collapsed;
+            }
+            
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}
+

+ 35 - 4
BlankApp1/BlankApp1/Views/BasicConfigView/ReadSchView.xaml

@@ -4,14 +4,18 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:PLCTool.Views.BasicConfigView"
-                       xmlns:hc="https://handyorg.github.io/handycontrol"
+             xmlns:hc="https://handyorg.github.io/handycontrol"
              xmlns:prism="http://prismlibrary.com/" 
              xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
              xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
+             xmlns:cvt="clr-namespace:PLCTool.Controls.Convert"
              BorderBrush="#CBCBCB" BorderThickness="1"
              Height="600" Width="1100" >
 
     <UserControl.Resources>
+        <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
+        <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
+        <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -136,7 +140,16 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             
                         </DataGrid.Columns>
@@ -202,7 +215,16 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                           
                         </DataGrid.Columns>
@@ -269,7 +291,16 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             
                         </DataGrid.Columns>

+ 67 - 6
BlankApp1/BlankApp1/Views/BusinessManageView/AutoTestView.xaml

@@ -7,9 +7,13 @@
              xmlns:hc="https://handyorg.github.io/handycontrol"
              xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
              xmlns:prism="http://prismlibrary.com/" 
+             xmlns:cvt="clr-namespace:PLCTool.Controls.Convert"
              BorderBrush="#CBCBCB" BorderThickness="1" 
              Height="600" Width="1200"   >
     <UserControl.Resources>
+        <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
+        <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
+        <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -130,10 +134,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                       Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                         </DataGrid.Columns>
 
@@ -198,10 +221,29 @@ ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" RowHeaderStyle="{StaticRe
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                       Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                         </DataGrid.Columns>
 
@@ -266,10 +308,29 @@ ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" RowHeaderStyle="{StaticRe
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                       Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                         </DataGrid.Columns>
 

+ 75 - 6
BlankApp1/BlankApp1/Views/BusinessManageView/ManualTestView.xaml

@@ -8,10 +8,14 @@
              xmlns:prism="http://prismlibrary.com/" 
              xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
              xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
+             xmlns:cvt="clr-namespace:PLCTool.Controls.Convert"
              BorderBrush="#CBCBCB" BorderThickness="1"
              Height="600" Width="1200" >
 
     <UserControl.Resources>
+        <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
+        <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
+        <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -137,10 +141,31 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}"
+                                    Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                                                Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>
@@ -206,10 +231,30 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}"
+                                    Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                                                Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>
@@ -276,10 +321,34 @@
                             <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}"/>
+                            <!--<DataGridTextColumn Header="判定值" Binding="{Binding PlcValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>-->
+
+                            <DataGridTemplateColumn Header="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}"
+                                                Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                     Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
+                           
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>

+ 67 - 6
BlankApp1/BlankApp1/Views/BusinessManageView/RetryTestView.xaml

@@ -8,10 +8,14 @@
              xmlns:prism="http://prismlibrary.com/" 
              xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
              xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
+             xmlns:cvt="clr-namespace:PLCTool.Controls.Convert"
              BorderBrush="#CBCBCB" BorderThickness="1"
              Height="600" Width="1200" >
 
     <UserControl.Resources>
+        <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
+        <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
+        <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -137,10 +141,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                                                Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>
@@ -206,10 +229,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                                            Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>
@@ -276,10 +318,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                                                Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>

+ 66 - 7
BlankApp1/BlankApp1/Views/BusinessManageView/TestResultDetailView.xaml

@@ -13,7 +13,9 @@
     <UserControl.Resources>
 
         <cvt:StringToImageSourceConverter x:Key="MyImageConverter"/>
-
+        <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
+        <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
+        <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -141,10 +143,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                     Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>
@@ -211,10 +232,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                     Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>
@@ -280,10 +320,29 @@
                             <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="判定值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding PlcValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToElispConverter}}" Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding PlcValue}" Visibility="{Binding PlcValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                             <DataGridTextColumn Header="测试时间" Width="160" Binding="{Binding TestTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                            <DataGridTextColumn Header="实际值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                            <DataGridTemplateColumn Header="实际值" CellStyle="{StaticResource MyDataGridCellStyle}">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Grid >
+                                            <Ellipse  Fill="{Binding RealValue,Converter={StaticResource ValueToColorConverter}}" Visibility="{Binding RealValue,Converter={StaticResource ValueToElispConverter}}"
+                     Width="20" Height="20"  />
+                                            <TextBlock  Text="{Binding RealValue}" Visibility="{Binding RealValue,Converter={StaticResource ValueToTxtConverter}}" HorizontalAlignment="Center"/>
+                                        </Grid>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
                             <DataGridTextColumn Header="结果" Binding="{Binding TestResult}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
 
                         </DataGrid.Columns>