c# - 如何使用 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");
}
}
}
解决方案
我认为您想编写一个自定义设置器,以便在文本框中的值无效时通知用户。
查看WPF中的验证文档
以下示例中 TextBox 的文本内容绑定到名为 ods 的绑定源对象的 Age 属性(int 类型)。绑定设置为使用名为 AgeRangeRule 的验证规则,因此如果用户输入非数字字符或小于 21 或大于 130 的值,则文本框旁边会出现一个红色感叹号和一个工具提示当用户将鼠标移到文本框上时会出现错误消息。
推荐阅读
- python - 带彩条的圆图
- html - JAWS 不读取输入类型文本字段值
- python-3.x - 启动 SparkSession 的区别
- c - 一个程序在函数之间有太多的数据连接意味着什么?
- javascript - 根据纵横比“预测”视频容器高度
- oracle - 使用 P_DROP_USERS => 'Y' 调用 APEX_INSTANCE_ADMIN.REMOVE_WORKSPACE 是否会删除用户对象?
- c# - 绑定更新后如何以编程方式选择`NavigationView`的绑定`NavigationViewItem`
- python - Pip install 命令“python setup.py egg_info”失败,错误代码
- oracle12c - 安装期间未选择“hr”默认数据库
- html - 通过 CSS attr() 获取属性的第一个/最后一个部分