【发布时间】:2014-07-21 06:19:10
【问题描述】:
当绑定到 ViewModel 时,框架会默认处理一些验证,例如,如果文本字段绑定到 int 属性并且用户输入了一个字母,则输入的边框会变为红色。我已经阅读了有关 IDataErrorInfo 和 INotifyDataErrorInfo 的信息,但无法成功实现它们(这就是我需要的方法)。
所以如果这是我的模型:
public class TestModel : ObservableObject
{
public int ModelId { get; set; }
public string ModelName { get; set; }
private int _modelNumber;
public int ModelNumber
{
get { return _modelNumber; }
set
{
_modelNumber = value;
RaisePropertyChanged();
}
}
}
我的视图模型:
public class TestViewModel : ObservableObject
{
private TestModel _selectedModel;
public TestModel SelectedModel
{
get { return _selectedModel; }
set
{
_selectedModel = value;
RaisePropertyChanged();
}
}
private ICommand _doSomthingCommand;
public ICommand DoSomthingCommand
{
get
{
if (_doSomthingCommand == null)
{
_doSomthingCommand = new CommandBase(doSomthing, canDosomething);
}
return _doSomthingCommand;
}
}
private bool canDosomething(object arg)
{
//check here if an error exists
}
private void doSomthing(object obj)
{
throw new NotImplementedException();
}
}
如何知道视图中有错误并从 canexecute 方法返回 false?
【问题讨论】:
标签: c# wpf mvvm binding .net-4.5