2012-11-18 69 views
0

我有一個綁定到對象屬性的文本框。如果用戶編輯了該控件並且不想應用更改,如何撤消對該屬性的更改?取消對Windows Phone 7.1綁定文本框的更改

我知道我可以在編輯之前保存舊值,並在用戶取消編輯時恢復它們。但是,該解決方案消除了數據綁定的大多數好處,因爲所有綁定屬性都必須手動重置。

這裏是XAML

<TextBox Text="{Binding BindingText, Mode=TwoWay}"/> 

而且在PageLoaded處理程序的代碼:

DataContext = App.Binder; // Set data context for the page 

回答

0

你可以使用一個雙向數據綁定,但不會爲您服務的宗旨,我認爲。

還要記住提供數據綁定,以便開發人員不必手動執行額外的代碼行。它可以自動執行常見任務。要進行手動控制,您必須手動執行該操作。我知道這不是你想要的答案,但事實就是這樣。


現在我想你可以使用一個額外的屬性/變量和2個單向綁定進行設置。

讓這個對象的屬性被綁定到該變量,即當這個屬性改變實際的對象屬性更改(僅單程)

文本框綁定到對象屬性(單程),所以對象的屬性發生變化時然後文本框反映它。

並使用一個提交按鈕,它將根據文本框更改臨時變量值。

tempVar ---->對象屬性 對象屬性---->文本框 文本框手動更改tempVar。

但它仍然不是一個直接的答案,而是一種解決方法(使用數據綁定)。

+0

我認爲這是一個非常標準的模式,用戶進入編輯頁面,可以接受更改或丟棄它們。當Windows Phone綁定機制必須顯示數據並接受更改時才能正常工作,但沒有簡單的方法取消。我不相信這樣的基本功能可能會丟失。在所有的頁面/表單/屏幕都應用並取消按鈕後。即使嬰兒知道:)也許我只是看着它錯了? –

+0

是的,在頁面/表單中,你必須實現當按下任何按鈕時會發生什麼。我自己不喜歡自動模式下的事情,並且需要精確的手動控制,但我猜在快速開發環境中並不總是可行的。這是我的意見。 –