2011-03-28 71 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