我有一个文本框,它的Text属性绑定到一个字符串(在视图模型中)
问题:如何制作它,以便在该文本框中写入的内容正好是10个字符长(或者只有英文字母,只是一个示例)。
问题是它是否直接写入viewModel的字符串变量。所以我唯一的想法是为此设置一个转换器。但即使转换器没有返回任何内容,我如何通知用户有什么问题? (“错误 - 长度!= 10”作为例子)
答案 0 :(得分:3)
我建议您查看IDataErrorInfo
interface。
您可以让viewmodel实现此接口以定义验证逻辑。例如:
public class ViewModel : IDataErrorInfo
{
public string MyText { get; set; }
#region IDataErrorInfo Members
public string Error
{
get { return null; }
}
public string this[string columnName]
{
get
{
if (columnName == "MyText")
{
if (MyText.Length != 10)
{
return "Text should be exactly 10 letters.";
}
}
return null;
}
}
#endregion
}
可以找到一个很好的例子和进一步的自定义here。
答案 1 :(得分:0)
您必须使用WPF Data Validation