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">
|
||||
|
||||
<UserControl.Resources>
|
||||
<converters:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
|
||||
<converters:DoubleToStringConverter x:Key="DoubleToStringConverter"/>
|
||||
<converters:EnumDisplayConverter x:Key="EnumDisplayConverter"/>
|
||||
<ObjectDataProvider x:Key="EnumHeatStrategy" MethodName="GetValues"
|
||||
ObjectType="{x:Type sys:Enum}">
|
||||
|
@ -1470,7 +1470,9 @@
|
|||
<controls:TextBoxEx
|
||||
FontFamily="Arial"
|
||||
FontSize="14"
|
||||
Text="{Binding PIDLimitLowerSP, Mode=OneWayToSource}" />
|
||||
EditBoxMode="Decimal"
|
||||
Text="{Binding PIDLimitLowerSP,
|
||||
Mode=OneWayToSource}" />
|
||||
</Border>
|
||||
|
||||
<Border
|
||||
|
@ -1504,6 +1506,7 @@
|
|||
BorderBrush="{DynamicResource Table_BD}"
|
||||
BorderThickness="0,0,1,1">
|
||||
<controls:TextBoxEx
|
||||
EditBoxMode="Decimal"
|
||||
FontFamily="Arial"
|
||||
FontSize="14"
|
||||
Text="{Binding PIDLimitUpperSP, Mode=OneWayToSource}" />
|
||||
|
@ -1540,6 +1543,7 @@
|
|||
BorderBrush="{DynamicResource Table_BD}"
|
||||
BorderThickness="0,0,1,1">
|
||||
<controls:TextBoxEx
|
||||
EditBoxMode="Decimal"
|
||||
FontFamily="Arial"
|
||||
FontSize="14"
|
||||
Text="{Binding PIDRateLimitSP, Mode=OneWayToSource}" />
|
||||
|
@ -1678,7 +1682,7 @@
|
|||
|
||||
<Grid Grid.Row="1" Grid.Column="0">
|
||||
<Label
|
||||
Margin="22,13,-22.5,-12.5"
|
||||
Margin="22,-120,-22.5,0"
|
||||
Content="{lex:Loc ID_TXT_Confinement_Must_In_Up_State}"
|
||||
FontSize="30"
|
||||
FontWeight="Bold"
|
||||
|
|
|
@ -1065,25 +1065,25 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||
[Subscription("TC1.PIDRateLimit")]
|
||||
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()
|
||||
{
|
||||
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%.");
|
||||
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%.");
|
||||
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%.");
|
||||
else if (PIDLimitLowerSP >= PIDLimitUpperSP)
|
||||
else if (lower >= upper)
|
||||
DialogBox.ShowError("PID Limit Lower(%) can not be greater than Upper(%).");
|
||||
else
|
||||
InvokeClient.Instance.Service.DoOperation($"{SystemName}.{TCUnits.TC1}.SetPIDLimit",
|
||||
PIDLimitLowerSP, PIDLimitUpperSP, PIDRateLimitSP);
|
||||
lower, upper, rate);
|
||||
}
|
||||
|
||||
#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\ColorConverter_IsTestOK.cs" />
|
||||
<Compile Include="Converters\ColorToBrushConverter.cs" />
|
||||
<Compile Include="Converters\DoubleToStringConverter.cs" />
|
||||
<Compile Include="Converters\EnumDescriptionConverter.cs" />
|
||||
<Compile Include="Converters\EnumDisplayConverter.cs" />
|
||||
<Compile Include="Converters\GeneralConverter.cs" />
|
||||
|
|
Loading…
Reference in New Issue