using System.Runtime.CompilerServices; namespace Yw.WinFrmUI { /// /// 流量计视图 /// public class HydroFlowmeterViewModel : HydroJunctionViewModel, IHydroCalcuFlowmeterResult { /// /// /// public HydroFlowmeterViewModel() { } /// /// /// public HydroFlowmeterViewModel(Yw.Model.HydroFlowmeterInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.CurrentFlow = rhs.CurrentFlow.HasValue ? Math.Round(rhs.CurrentFlow.Value, 1) : null; this.UpdatePropStatus(nameof(this.CurrentFlow), rhs, nameof(rhs.CurrentFlow)); this.Vmo = rhs; } /// /// 流量 /// [Category("数据")] [DisplayName("流量")] [Display(Name = "流量(m³/h)")] [DisplayUnit("m³/h")] [PropertyOrder(3001)] [Browsable(true)] public double? CurrentFlow { get; set; } /// /// 自由压力 /// [Category("计算结果")] [DisplayName("自由压力")] [Display(Name = "自由压力(m)")] [DisplayUnit("m")] [IsHydroCalcuPro] [PropertyOrder(10001)] [ShowEditor(false)] [Browsable(false)] public override double? CalcuPress { get; set; } /// /// 绝对压力 /// [Category("计算结果")] [DisplayName("绝对压力")] [PropertyOrder(10002)] [DisplayUnit("m")] [IsHydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public override double? CalcuHead { get; set; } /// /// 需水量 /// [Category("计算结果")] [DisplayName("需水量")] [PropertyOrder(10003)] [DisplayUnit("m³/h")] [IsHydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public override double? CalcuDemand { get; set; } /// /// 流量 /// [Category("计算结果")] [DisplayName("计算流量")] [Display(Name = "计算流量(m³/h)")] [DisplayUnit("m³/h")] [IsHydroCalcuPro] [PropertyOrder(11001)] [ShowEditor(false)] [Browsable(true)] public double? CalcuQ { get; set; } /// /// /// [Browsable(false)] public new Yw.Model.HydroFlowmeterInfo Vmo { get; set; } /// /// /// public override void UpdateProperty() { base.UpdateProperty(); this.CurrentFlow = this.Vmo.CurrentFlow; this.UpdatePropStatus(nameof(this.CurrentFlow), this.Vmo, nameof(this.Vmo.CurrentFlow)); } public override void UpdateVmoProperty() { base.UpdateVmoProperty(); this.Vmo.CurrentFlow = this.CurrentFlow; this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurrentFlow), this, nameof(this.CurrentFlow)); } /// /// 更新计算属性 /// public override void UpdateCalcuProperty(HydroCalcuResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is HydroCalcuFlowmeterResult calcuFlowmeterProperty) { this.CalcuQ = calcuFlowmeterProperty.CalcuQ.HasValue ? Math.Round(calcuFlowmeterProperty.CalcuQ.Value, 1) : null; } } } }