2017-08-24 84 views
0

我的目標是如果用戶試圖關閉窗口並對字段進行更改,則在窗口上顯示一個消息框。我正在使用包裝來包裝屏幕上顯示的對象(繼承接口NotifyDataErrorInfoBase),並且在窗口關閉事件中使用命令綁定和關閉行爲時,所有工作都正常。IsChanged與IChangeTracking不在窗口上觸發關閉WPF MVVM C#

我的問題是當窗口第一次打開時,文本框首先關注焦點。如果我在文本框中鍵入內容,然後單擊「X」按鈕關閉窗口,則軌道更改不起作用。

如果我在文本框中鍵入內容然後單擊我的關閉按鈕(它被綁定到關閉命令),它可以正常工作。

如果我從下拉列表中選擇一個值,然後單擊「X」按鈕關閉窗口,它可以正常工作。

似乎跟蹤更改僅適用於在焦點丟失在字段或進行其他操作(如單擊按鈕)時將數據確認爲字段。這是真的?如果是這樣,是否有可能開始跟蹤TextChanged上的更改?

回答

3

嘗試綁定的UpdateSourceTrigger設置爲PropertyChanged

<TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" /> 

這應當引起,當你輸入一些東西到TextBox源屬性來獲取立即設置。