【发布时间】:2019-02-21 14:47:24
【问题描述】:
我有一个具有属性的 ViewModel。 此属性是“PhysicalValue”。这个 PhysicalValue 是一个由 Value 和 Unit 组成的类。
public Class MyViewModel:INotifyPropertyChanged:IDataErrorInfo {
public PhysicalValue Target {get => _target; set => {_target = value; NotifyPropertyChanged("Target");}}
public string this[string columnName]
{
get
{
if (columnName == "Target")
{
if(_target.Value>5000){
return "out of spec value";
}
}
return String.Empty;
}
}
}
我有一个控件应该编辑此 PhysicalValue 的值:
[...]
<dxe:TextEdit EditValue="{Binding Target.Value, ValidatesOnDataErrors =true}"></dxe:TextEdit>
[...]
但我没有任何错误(可能是因为它搜索Target.Value 是否有错误。我尝试了另一种方法,直接绑定到Target,但这不起作用,因为我需要convertBack知道最初使用哪个 Unit 来重建 PhysicalValue。
你会怎么解决这个问题?
【问题讨论】:
-
这里有一个例子,如果是网站,我会使用一些客户端或html5进行输入验证,以免过度设计..stackoverflow.com/a/14023682/10634638
-
@Bestinamir 不确定是否理解您的答案。这不是布局问题。
-
你想生成什么样的错误?您可以设置 Value 属性吗?
标签: c# wpf binding idataerrorinfo