我的窗口中有两个 DecimalUpDown 控件。一个应显示文本框的最大值,另一个应显示最小值。
最小控制值不能大于最大控制值,反之亦然。
请注意,红色值是错误的。
我怎样才能实现这个?我正在使用 MVVM 模式。
谢谢。
史蒂夫
您应该在视图模型中实现验证逻辑:
public class MyViewModel : IDataErrorInfo
{
private int _min;
public int Min
{
get { return _min; }
set { _min = value; }
}
private int _max;
public int Max
{
get { return _max; }
set { _max = value; }
}
public string Error { get { return null; } }
public string this[string columnName]
{
get
{
switch(columnName)
{
case "Min":
if (_min > _max)
return "Min cannot be greater than Max";
break;
case "Max":
if (_max < _min)
return "Max cannot be smaller than Min";
break;
}
return null;
}
}
}
XAML:
<xctk:IntegerUpDown Value="{Binding Min,ValidatesOnDataErrors=True}" />
<xctk:IntegerUpDown Value="{Binding Max,ValidatesOnDataErrors=True}" />
请参阅以下博客文章,了解有关 WPF 中数据验证如何工作的更多信息:https://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/ https://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/.
您基本上实现了IDataErrorInfo
或较新的INotifyDataErrorInfo
在你的视图模型中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)