【发布时间】:2019-10-30 12:55:06
【问题描述】:
我无法使用 ReactiveUI 按预期绑定到 WPF DatePicker 工作。 绑定是在这样的代码中设置的:
this.Bind(this.ViewModel, x => x.MyDate, x => x.DPMyDate.SelectedDate, DPMyDate.Events().LostKeyboardFocus).DisposeWith(disposables);
在 XAML 文件中如下所示:
<DatePicker Name="DPMyDate"></DatePicker>
绑定的属性是这样的:
private DateTime myDate;
public DateTime MyDate
{
get { return myDate; }
set
{
this.RaiseAndSetIfChanged(ref myDate, value);
}
}
通过日历更改日期按预期工作。但是,当我使用键盘更改日期时,绑定属性不会更改! 有趣的是,当我在更改日期后将焦点移出 DatePicker,然后再次进出(不更改任何内容)时,原始更改被设置。我想这与 DatePicker 及其 TextBox 的内部焦点处理有关,但我不明白它是 WPF 还是 ReactivUI 的问题。
有什么想法吗?
更新 1
作为测试,我直接为 DatePickers LostKeyboardFocus 事件分配了一个处理程序。每次控件失去焦点时,此事件似乎都会触发。然而,ReactiveUI 并没有发现第一次失去焦点!
【问题讨论】:
标签: wpf reactiveui