为什么当窗口首先显示时,文本框没有更新值
本文关键字:文本 更新 窗口 显示 为什么 | 更新日期: 2023-09-27 18:32:50
我有一个DoubleTextbox(来自扩展WPF工具包),它被添加到gris中,如下所示:
<xctk:DoubleUpDown Grid.Row="3" Grid.Column="1" FormatString="F2" Value="{Binding MyDoubleValue}" Maximum="100" Minimum=".0001" DefaultValue="1.0"/>
MyDouble 值定义如下:
private double myDouble=1.0;
public double MyDouble
{
get
{
return this.myDouble ;
}
set
{
if (Math.Abs(this.myDouble - value) > 0.0000000000001)
{
this.myDouble = value;
this.NotifyOfPropertyChange(() => this.MyDouble );
}
}
}
当我运行应用程序并查看此文本框的值时,它是空白的,但是如果我使用向上箭头,它会显示 2.0(这意味着它正确检测到 MyDouble 的值。
为什么它在启动时没有在窗口上显示其值?
我正在使用卡利本微。
属性名称不正确。它应该是MyDouble而不是MyDoubleValue
Value="{Binding MyDouble}"
您使用的是默认值:
private double myDouble=1.0;
因此,尚未调用NotifyOfPropertyChange
MyDouble
并且 WPF 不知道该值。
在初始化期间,在ViewModel
的构造函数或其他位置设置值(通过属性,而不是 backer 字段)。
或
在初始化期间调用NotifyOfPropertyChange(() => this.MyDouble );
。
问题是 XAML 上的默认值="1.0"。 当我删除它时,它起作用了。