我有一个文本框,其值是绑定到一个ViewModel属性:WPF文本框的值不会改变OnPropertyChanged
<TextBox Name="txtRunAfter" Grid.Column="4" Text="{Binding Mode=TwoWay, Path=RunAfter}" Style="{StaticResource TestStepTextBox}"/>
设定,直到我尝试添加一些验证,如果值是得到了工作正常设置为:
private int _runAfter = 0;
public string RunAfter
{
get
{
return _runAfter.ToString();
}
set
{
int val = int.Parse(value);
if (_runAfter != val)
{
if (val < _order)
_runAfter = val;
else
{
_runAfter = 0;
OnPropertyChanged("RunAfter");
}
}
}
}
虽然OnPropertyChanged已达到(我已经说过),但视图并未更改。 我该如何做这项工作?
感谢, 何塞·塔瓦雷斯
我想你对问题的评估是正确的,但调度员调用不起作用。我的UserControl在WinForm应用程序中使用ElementHost。这可能会影响分派器调用? – jpsstavares 2010-06-17 08:59:41
好吧,我测试了这一点,它工作正常(当您从TextBox远离Tab键作为绑定的默认模式将不更新属性,直到TextBox失去焦点)。我更新了答案,以解释绑定上的UpdateSourceTrigger,以防您看到的行为。我对WinForms中托管的WPF没有太多处理,但我不明白为什么会影响您的上下文中的Binding或Dispatcher。 – 2010-06-17 14:22:29