Silverlight MVVM - 未在Datepicker上触发的Twoway绑定

时间:2011-03-28 11:41:23

标签: c# silverlight mvvm

我有Silverlight MVVMLight 4.0应用程序,其中我有datepicker。

datepicker是双向绑定到viewmodel的。没有代码。

当标记日期选择器文本框时,这可以正常工作,并将更改对象的基础属性。

但是,当我更改文本框并且没有关闭标签并单击“保存”时,未注册更改。

我已经查看了各种被触发的事件,除非你关闭

,否则它们不会触发
  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 个答案:

答案 0 :(得分:2)

我很确定TextBox在更新属性之前需要失去焦点。

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

答案 1 :(得分:0)

更改绑定中的UpdateSourceTrigger值。 如果未设置,则使用默认值(即TextBox.Text的Lost Focus) 根据屏幕的内部工作和需要,您可以将其设置为PropertyChanged或Explicit。

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