2013-07-24 46 views
2

我有一個應用程序和一個設置窗口與TabControl包含幾個TabItems。它們每個都有一些字段(文本框),這些字段被數據綁定到同一個Singleton對象。
是否有任何優雅和類似WPF的方式來數據綁定後保存按鈕單擊?
現在它在更改文本框的內容後立即進行了數據綁定,並且我希望該單例有舊值,並且只有在單擊保存按鈕後才能更新它們。WPF數據綁定保存按鈕點擊後

回答

2

而不是提高每個屬性集的更改通知(因爲這是什麼觸發重新綁定和更新),把所有引發通知放在保存按鈕。然後當你點擊保存時,你保存並告訴視圖重新綁定到那些(現在設置的)屬性。

進一步爲: 綁定到非單身屬性(因爲你想保留舊的設置,直到點擊保存) - 沒有提高這些屬性的通知。

在您的保存按鈕中,設置您的單身屬性,然後提出其他屬性的所有通知。

在您的取消按鈕中,將其他屬性設置爲單身屬性的值,並提出所有通知。

當第一次加載視圖時,不要忘記將屬性設置爲單例屬性,並引發所有通知(就像取消一樣)。

0

如果您使用WPF將UpdateSourceTrigger更改爲LostFocus。我認爲這將解決目的。

Text="{Binding Path=MyText, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" 
3

對於XAML用於TextboxDataBinding對象,請使用如下值ExplicitUpdateSourceTrigger屬性:

<TextBox Name="itemNameTextBox" 
    Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" /> 

當您設置UpdateSourceTrigger值爲明確,源值僅當應用程序調用如下的UpdateSource方法時發生更改(您可以在Save Click事件中輸入以下代碼):

BindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty); 
be.UpdateSource();