2011-03-28 72 views
2

我有Silverlight MVVMLight 4.0应用程序,我有datepicker。Silverlight MVVM - Twoway绑定不会触发Datepicker

datepicker是双向绑定到视图模型。没有代码。

这个工作正常,当tabp的datepickers文本框,并将改变对象的基础属性。

但是,当我改变文本框,并没有制表符,并点击保存更改未注册。

我都看着那个被解雇的各种事件,他们不火,除非你关闭选项卡

private void startDateDatePicker_TextInput(object sender, System.Windows.Input.TextCompositionEventArgs e) 
    { 

    } 

    private void startDateDatePicker_TextInputStart(object sender, System.Windows.Input.TextCompositionEventArgs e) 
    { 

    } 

    private void startDateDatePicker_TextInputUpdate(object sender, System.Windows.Input.TextCompositionEventArgs e) 
    { 

    } 

    private void startDateDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) 
    { 

    } 

没有任何人对此有一个解决方法吗?

亲切的问候,

帕特

回答

2

我相当肯定,酒店更新之前TextBox需求失去焦点。

你可以尝试处理TextBoxKeyDown事件,并从那里更新属性,但我不确定它的表现如何。

+0

这是真的,功能是一个痛苦的脖子。单击该按钮不会将焦点从文本框移开。也许按钮上的点击事件处理程序可以修复它,虽然我还没有尝试过,对我们来说,至少在命令执行之前它必须启动。 – BenCr 2011-03-28 11:54:13

+0

保存按钮上的点击事件并不是一个很好的解决方案,因为datepicker是usercontrol的一部分,保存在父级中。 – Pat 2011-03-28 13:08:14

0

更改绑定中的UpdateSourceTrigger值。 如果未设置,使用默认的(这是失去焦点的对TextBox.Text) 根据内部运作和屏幕的需求,你可以将其设置为的PropertyChanged或显式。

http://msdn.microsoft.com/en-us/library/ms752347.aspx

+0

是的,我曾尝试过。默认和显式是唯一可用的属性,没有喜悦。 – Pat 2011-03-28 16:27:30