首页 > 解决方案 > 如何使用 mvvm 在 wpf 中为依赖对象编写自定义设置器

问题描述

如何使用 mvvm 在 wpf 中为依赖对象编写自定义设置器?

在我的 ViewModel 中,我有一个名为 Seasonalprop 的依赖对象,我用它来绑定到 XAML 中的 TextBox。我想编写一个自定义设置器,以便在提供的字符串输入无法转换为双精度时通知用户。我得到的错误是 value 是一个字符串,不能转换为 double。

public double Seasonalprop
        {
            get { return (double)GetValue(SeasonalProperty); }
            set
            {
                try
                  {
                          Double.TryParse(value, out parsedouble);
                          SetValue(SeasonalProperty, value);

                  }
                  catch(Exception ex)
                  {
                          MessageBox.Show(" String Input cannot be converted to 
                          type double");
                  }

            }
        }

标签: c#wpf

解决方案


我认为您想编写一个自定义设置器,以便在文本框中的值无效时通知用户。

查看WPF中的验证文档

以下示例中 TextBox 的文本内容绑定到名为 ods 的绑定源对象的 Age 属性(int 类型)。绑定设置为使用名为 AgeRangeRule 的验证规则,因此如果用户输入非数字字符或小于 21 或大于 130 的值,则文本框旁边会出现一个红色感叹号和一个工具提示当用户将鼠标移到文本框上时会出现错误消息。


推荐阅读