使用text = {binding var}属性验证值在文本框控件中输入

时间:2014-05-27 10:55:04

标签: c# .net wpf mvvm

抱歉我的英文,

我有一个使用mvvm arquitecture的Windows应用程序。我有一个带不同控件的视图。其中一个是文本框。如果用户输入的值不正确,我需要验证用户输入的值并在属性和视图中设置特定值。我必须使用textbox的绑定属性。我不允许使用事件控件...例如:PreviewTextInput。

例如,这是我的控制:

 <TextBox Height="23" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/>

我需要在用户输入数字的情况下,文本框不允许这样做。我需要在用户在属性Name中输入负数设置值1并在文本框中显示此值的情况下。此外,如果用户在属性名称50中输入大于50的值并在视图中显示,我需要。

我怎么能这样做?

谢谢!

////////////////////////

非常感谢劳尔 问题是我无法显示错误消息(公司政策......)我需要用有效值替换错误值。例如:

public string Name     {

{get { return _name; }

set
{
_name = value;

    if (String.IsNullOrEmpty(value))
    {
       // throw new ApplicationException("Customer name is mandatory."); 

    }
}
}

//而不是抛出异常,在文本框中设置数值//50....like

if (string.IsNullOrEmpty(tbCasesNumber.Text))
            {
                txtName.text= "50";
            }

我如何在wpf中执行此操作?

1 个答案:

答案 0 :(得分:0)

您需要在视图模型的属性中进行验证。我建议阅读Validation in Windows Presentation Foundation,这是一本优秀的手册,并展示验证在WPF中的工作原理。

<强>更新

我发现非常有用的东西,首先是:

问候;)希望这有助于......