c# - if else 语句显示文本而不是双精度
问题描述
我需要呈现一个字符串而不是一个双精度值。
我有一种产生随机电压的方法。此方法作为参数传递以进一步计算压力。我正在尝试编写代码,因此如果(随机)电压 <= 2 或 >= 10,则关联的文本框应显示为“关闭”。文本框现在使用 AveragePressure 方法读取压力值。请找到带有问题的代码。先感谢您。
视图/DiagnosticsView.cs:
private void PresBindings()
{
private void PresBindings(Control c, string propertyName, object dataSource, string dataMember)
{
c.DataBindings.Add(propertyName, dataSource, dataMember, true, DataSourceUpdateMode.PropertyChanged);
}
Binding(textBoxVoltage, "Text", viewModel.Gas, nameof(PressureViewModel.Voltage)); //Voltage method in SystemMonitorViewModel.cs
型号/固件.cs:
public double GetVoltage()
{
double randVoltage;
lock (lockObject)
{
Random r = new Random();
randVoltage = r.NextDouble()*8.0;
return randVoltage;
}
}
Monitor.cs 字符串 p = "-";
public string Pressure
{
get
{
return p;
}
set
{
if (!string.Equals(value, p))
{
p = value;
Property();
}
}
}
型号/仪表.cs:
protected Average averagePressure;
public double AveragePressure
{
get
{
GetAverage();
}
}
public override void Read(double voltage, bool trip)
{
double P;
Voltage = voltage;
this.trip= trip;
if ((voltage <= 2 || voltage >= 10))
{
???
}
}
视图/MainViewModel.cs
Monitor.Gas.Pressure = sys.VacuumSystem.Gas.AveragePressure.ToString("0.0E-0");
Monitor.Gas.Voltage = sys.VacuumSystem.Gas.Voltage.ToString("0.00");
解决方案
您需要格式化绑定中的数据。
这control.DataBindings.Add(propertyName, dataSource, dataMember, true, DataSourceUpdateMode.OnPropertyChanged);
应该变成这个
Binding binding = new Binding(propertyName, dataSource, dataMember, true, DataSourceUpdateMode.OnPropertyChanged);
binding.Format+= (sender, e) =>
{
if(double.Parse(e.Value.ToString()) <= 2 || double.Parse(e.Value.ToString()) >= 10)
e.Value = "Off";
};
control.DataBindings.Add(binding);
推荐阅读
- python - 使用 django 将 PostGis Polygon 转换为传单地图
- git - Magit 不考虑 ~/.gitignore
- docker-compose - 让 docker-compose up 只运行某些容器
- python - 使用 `print()` 写入以二进制模式打开的文件
- python - 读取文件并转换值“'list' 对象没有属性 'find' on”
- assembly - 关于简单浮点加载指令的困惑
- react-native - -bash: react-native: 在 MAC 上找不到命令
- c# - 什么是 WPF 的 DataFormats 类中 Xaml 数据格式字段的 UWP 等效项
- amazon-web-services - 在 EMR 上使用笔记本时如何在 PySpark 中包含包?
- swift - 如何在 SpriteKit 中更改变量之前创建延迟