我有一个文本框,它的 Text 属性绑定到一个字符串(在视图模型中)
问题:我如何才能使该文本框中的内容正好是 10 个字符长(或仅用英文字母,只是一个示例)。
问题是它被直接写入 viewModel 的字符串变量。所以我唯一的想法是为此配备一个转换器。但即使转换器没有返回任何内容,我如何通知用户出现问题?(以“错误 - 长度!= 10”为例)
我有一个文本框,它的 Text 属性绑定到一个字符串(在视图模型中)
问题:我如何才能使该文本框中的内容正好是 10 个字符长(或仅用英文字母,只是一个示例)。
问题是它被直接写入 viewModel 的字符串变量。所以我唯一的想法是为此配备一个转换器。但即使转换器没有返回任何内容,我如何通知用户出现问题?(以“错误 - 长度!= 10”为例)
我建议看看IDataErrorInfo
界面。你可以让你的视图模型实现这个接口来定义验证逻辑。例如:
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
}
一个很好的例子和进一步的定制可以在这里找到。
您必须使用WPF 数据验证