Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WPF如何筛选数据绑定元素?MVVM相关_.net_Wpf_Validation_Mvvm - Fatal编程技术网

.net WPF如何筛选数据绑定元素?MVVM相关

.net WPF如何筛选数据绑定元素?MVVM相关,.net,wpf,validation,mvvm,.net,Wpf,Validation,Mvvm,我有一个文本框,它的文本属性绑定到一个字符串(在视图模型中) 问题:我如何使文本框中的文字长度正好为10个字符(或者仅以英文字母为例) 问题是它直接写入viewModel的字符串变量。所以我唯一的想法就是为这个设计一个转换器。但是,即使转换器什么也不返回,我如何通知用户出了问题?(“error-length!=10”作为示例)您必须使用我建议您查看一下。 您可以让viewmodel实现此接口来定义验证逻辑。例如: 公共类视图模型:IDataErrorInfo { 公共字符串MyText{get;

我有一个文本框,它的文本属性绑定到一个字符串(在视图模型中)

问题:我如何使文本框中的文字长度正好为10个字符(或者仅以英文字母为例)


问题是它直接写入viewModel的字符串变量。所以我唯一的想法就是为这个设计一个转换器。但是,即使转换器什么也不返回,我如何通知用户出了问题?(“error-length!=10”作为示例)

您必须使用我建议您查看一下。 您可以让viewmodel实现此接口来定义验证逻辑。例如:

公共类视图模型:IDataErrorInfo
{
公共字符串MyText{get;set;}
#区域IDataErrorInfo成员
公共字符串错误
{
获取{return null;}
}
公共字符串此[string columnName]
{
得到
{
如果(columnName==“MyText”)
{
如果(MyText.Length!=10)
{
return“文本应该正好是10个字母。”;
}
}
返回null;
}
}
#端区
}

可以找到一个很好的示例和进一步的定制。

虽然这可以回答问题,但在此处包含答案的基本部分,并提供链接供参考。将问题视为验证而不是筛选更有用。正如这里的一个答案所示,WPF提供了几种风格的支持,但IDataErrorInfo是MVVM的首选方法(参见Adi Lester的答案)。干杯