2011-03-11 60 views
1

我的應用程序是一個MDI Winform應用程序。 我遇到一些與MVP模式和數據綁定有關的問題。MVP監督控制器,數據綁定和撤消/重做

我的所有表格都是非模態的。當我修改字段或更改組合框中的選定項目時,我想修改模型,並且希望所有表單都能立即與模型同步。數據綁定對於簡單的字段非常適合,對於複雜的操作,我使用Presenter來「手動」更新視圖。

但是,如何把圖片中的撤消/重做機制? 我的意思是:我想通過單擊「撤消」按鈕來恢復我在文本字段中所做的更改。

我嘗試應用命令模式,但似乎沒有地方在數據綁定機制中引入「命令」機制。我很困惑,現在我正考慮徹底放棄綁定機制。

我看到很多關於綁定的文章,但沒有解決撤消/重做的問題。

撤銷/重做和數據綁定真的不兼容嗎?

+1

也許這可能會幫助你http://weblogs.asp.net/fbouma/archive/2009/03/20/the-undo-redo-paradox.aspx – epitka 2011-03-11 15:07:57

回答

0

您可以使用類似受監視撤消框架(http://muf.codeplex.com/或NuGet)的庫來管理撤消堆棧。它不需要命令模式。而是監視對模型的更改,然後將這些更改推入撤消堆棧。撤消更改意味着從堆棧中提取先前值並將其推回到模型中。

該庫是爲WPF編寫的,但如果您的綁定設置正確,它也應該適用於WinForms。此外,您可以在模型中掛鉤回調,以便知道由於撤銷/重做操作而導致值何時發生更改。

該庫具有文檔,單元測試以及指向某些示例的鏈接,以顯示如何使用它。