0
這是我的問題,當應用程序啓動時,用戶選擇文本框。不輸入任何用戶點擊標籤來選擇下一個文本框。這應該在viewmodel中爲第一個文本框綁定觸發setter方法。但似乎沒有發生。在TextBox失去焦點後調用Setter
在視圖模型:
private string _username;
public string Username
{
get { return _username; }
set
{
_username = value;
RaisePropertyChanged("Username");
Validator.Validate(() => Username);
}
}
而且在XAML:當我開始輸入一些東西,然後刪除它,移動焦點到別的東西
<TextBox Text="{Binding Username, Mode=TwoWay, ValidatesOnDataErrors=True}" />
用戶名setter方法被調用。 Datacontext已正確設置並正在運行。
1)用戶將焦點設置用戶名文本框,不鍵入任何
2)用戶將焦點移動到下一個項目上形式
結果=在視圖模型setter方法當用戶名文本框失去焦點不叫
結果,我需要= setter方法甚至被稱爲時如果目的是要立即觸發驗證狀態(這是我從獲取用戶不輸入任何
「這應該觸發setter方法」 - 請詳細解釋爲什麼你相信這是真實的。如果'TextBox'的內容沒有改變,爲什麼要調用視圖模型的setter?如果你想知道控件什麼時候失去焦點,爲什麼不處理'LostFocus'事件呢?當數值沒有真正改變時,你爲什麼要做一個屬性更改的通知和數據驗證?我覺得這個問題很混亂。 – 2014-11-23 21:24:19
當用戶沒有輸入任何東西到文本框,只是移動到下一個控制,然後我需要能夠顯示驗證錯誤。但如果setter沒有被調用,那麼我不能驗證該字段是否爲空。 – hs2d 2014-11-23 21:30:23
看看Binding類 – Maxwe11 2014-11-23 21:32:43