fix(PMHeaterView): 修正PMHeaterView视图中PID限幅值输入框绑定错的问题。
PID限幅值输入框绑定的PIDLimitLowerSP等属性类型更改为string。 SetPIDLimits方法中转化PIDLimitLowerSP等属性为double。
This commit is contained in:
parent
49bd1b6b38
commit
424ac5b575
|
@ -25,7 +25,7 @@
|
||||||
SnapsToDevicePixels="True">
|
SnapsToDevicePixels="True">
|
||||||
|
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<converters:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
|
<converters:DoubleToStringConverter x:Key="DoubleToStringConverter"/>
|
||||||
<converters:EnumDisplayConverter x:Key="EnumDisplayConverter"/>
|
<converters:EnumDisplayConverter x:Key="EnumDisplayConverter"/>
|
||||||
<ObjectDataProvider x:Key="EnumHeatStrategy" MethodName="GetValues"
|
<ObjectDataProvider x:Key="EnumHeatStrategy" MethodName="GetValues"
|
||||||
ObjectType="{x:Type sys:Enum}">
|
ObjectType="{x:Type sys:Enum}">
|
||||||
|
@ -1470,7 +1470,9 @@
|
||||||
<controls:TextBoxEx
|
<controls:TextBoxEx
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
FontSize="14"
|
FontSize="14"
|
||||||
Text="{Binding PIDLimitLowerSP, Mode=OneWayToSource}" />
|
EditBoxMode="Decimal"
|
||||||
|
Text="{Binding PIDLimitLowerSP,
|
||||||
|
Mode=OneWayToSource}" />
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<Border
|
<Border
|
||||||
|
@ -1504,6 +1506,7 @@
|
||||||
BorderBrush="{DynamicResource Table_BD}"
|
BorderBrush="{DynamicResource Table_BD}"
|
||||||
BorderThickness="0,0,1,1">
|
BorderThickness="0,0,1,1">
|
||||||
<controls:TextBoxEx
|
<controls:TextBoxEx
|
||||||
|
EditBoxMode="Decimal"
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
FontSize="14"
|
FontSize="14"
|
||||||
Text="{Binding PIDLimitUpperSP, Mode=OneWayToSource}" />
|
Text="{Binding PIDLimitUpperSP, Mode=OneWayToSource}" />
|
||||||
|
@ -1540,6 +1543,7 @@
|
||||||
BorderBrush="{DynamicResource Table_BD}"
|
BorderBrush="{DynamicResource Table_BD}"
|
||||||
BorderThickness="0,0,1,1">
|
BorderThickness="0,0,1,1">
|
||||||
<controls:TextBoxEx
|
<controls:TextBoxEx
|
||||||
|
EditBoxMode="Decimal"
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
FontSize="14"
|
FontSize="14"
|
||||||
Text="{Binding PIDRateLimitSP, Mode=OneWayToSource}" />
|
Text="{Binding PIDRateLimitSP, Mode=OneWayToSource}" />
|
||||||
|
@ -1678,7 +1682,7 @@
|
||||||
|
|
||||||
<Grid Grid.Row="1" Grid.Column="0">
|
<Grid Grid.Row="1" Grid.Column="0">
|
||||||
<Label
|
<Label
|
||||||
Margin="22,13,-22.5,-12.5"
|
Margin="22,-120,-22.5,0"
|
||||||
Content="{lex:Loc ID_TXT_Confinement_Must_In_Up_State}"
|
Content="{lex:Loc ID_TXT_Confinement_Must_In_Up_State}"
|
||||||
FontSize="30"
|
FontSize="30"
|
||||||
FontWeight="Bold"
|
FontWeight="Bold"
|
||||||
|
|
|
@ -1065,25 +1065,25 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
||||||
[Subscription("TC1.PIDRateLimit")]
|
[Subscription("TC1.PIDRateLimit")]
|
||||||
public double PIDRateLimitFB { get; set; }
|
public double PIDRateLimitFB { get; set; }
|
||||||
|
|
||||||
public double PIDLimitLowerSP { get; set; }
|
public string PIDLimitLowerSP { get; set; }
|
||||||
|
|
||||||
public double PIDLimitUpperSP { get; set; }
|
public string PIDLimitUpperSP { get; set; }
|
||||||
|
|
||||||
public double PIDRateLimitSP { get; set; }
|
public string PIDRateLimitSP { get; set; }
|
||||||
|
|
||||||
public void SetPIDLimits()
|
public void SetPIDLimits()
|
||||||
{
|
{
|
||||||
if (PIDLimitLowerSP is < 0 or > 100)
|
if (double.TryParse(PIDLimitLowerSP, out var lower) && lower is < 0 or > 100)
|
||||||
DialogBox.ShowError("PID Limit Lower(%) is out of range 0% ~ 100%.");
|
DialogBox.ShowError("PID Limit Lower(%) is out of range 0% ~ 100%.");
|
||||||
else if (PIDLimitUpperSP is < 0 or > 100)
|
else if (double.TryParse(PIDLimitUpperSP, out var upper) && upper is < 0 or > 100)
|
||||||
DialogBox.ShowError("PID Limit Upper(%) is out of range 0% ~ 100%.");
|
DialogBox.ShowError("PID Limit Upper(%) is out of range 0% ~ 100%.");
|
||||||
else if (PIDRateLimitSP is < 0 or > 100)
|
else if (double.TryParse(PIDRateLimitSP, out var rate) && rate is < 0 or > 100)
|
||||||
DialogBox.ShowError("PID Limit Upper(%) is out of range 0% ~ 100%.");
|
DialogBox.ShowError("PID Limit Upper(%) is out of range 0% ~ 100%.");
|
||||||
else if (PIDLimitLowerSP >= PIDLimitUpperSP)
|
else if (lower >= upper)
|
||||||
DialogBox.ShowError("PID Limit Lower(%) can not be greater than Upper(%).");
|
DialogBox.ShowError("PID Limit Lower(%) can not be greater than Upper(%).");
|
||||||
else
|
else
|
||||||
InvokeClient.Instance.Service.DoOperation($"{SystemName}.{TCUnits.TC1}.SetPIDLimit",
|
InvokeClient.Instance.Service.DoOperation($"{SystemName}.{TCUnits.TC1}.SetPIDLimit",
|
||||||
PIDLimitLowerSP, PIDLimitUpperSP, PIDRateLimitSP);
|
lower, upper, rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows.Data;
|
||||||
|
|
||||||
|
namespace MECF.Framework.UI.Core.Converters
|
||||||
|
{
|
||||||
|
public class DoubleToStringConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if (value == null)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
if(value is double dbl)
|
||||||
|
return dbl.ToString(CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
|
return value.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if(value == null)
|
||||||
|
return double.NaN;
|
||||||
|
|
||||||
|
if (double.TryParse(value.ToString(), out var dbl))
|
||||||
|
return dbl;
|
||||||
|
|
||||||
|
return double.NaN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -292,6 +292,7 @@
|
||||||
<Compile Include="Converters\CenterBorderGapMaskConverter.cs" />
|
<Compile Include="Converters\CenterBorderGapMaskConverter.cs" />
|
||||||
<Compile Include="Converters\ColorConverter_IsTestOK.cs" />
|
<Compile Include="Converters\ColorConverter_IsTestOK.cs" />
|
||||||
<Compile Include="Converters\ColorToBrushConverter.cs" />
|
<Compile Include="Converters\ColorToBrushConverter.cs" />
|
||||||
|
<Compile Include="Converters\DoubleToStringConverter.cs" />
|
||||||
<Compile Include="Converters\EnumDescriptionConverter.cs" />
|
<Compile Include="Converters\EnumDescriptionConverter.cs" />
|
||||||
<Compile Include="Converters\EnumDisplayConverter.cs" />
|
<Compile Include="Converters\EnumDisplayConverter.cs" />
|
||||||
<Compile Include="Converters\GeneralConverter.cs" />
|
<Compile Include="Converters\GeneralConverter.cs" />
|
||||||
|
|
Loading…
Reference in New Issue