public class TestModel : ViewModelBase
{
private int _Height;
/// <summary>
///
/// </summary>
public int Height{get { return _Height; } set { _Height= value; RaisePropertyChanged("Height"); }}
}
我定義一個model,用于資料系結,然而在用戶輸入的時候,可能會輸入string型別的,資料庫的Height是int?型別,允許為空,在提交保存的時候,在Mvvm模式下,假如用戶輸入中文,文本輸入框雖然會變紅,但是,還會執行后面的資料保存代碼,因為ViewModelBase檢測錯誤的時候,強行改成Height=0,繼續執行資料庫保存代碼,把資料Height=0保存到資料庫中,因為用戶輸入了中文,但是沒有任何提示,程式執行成功,資料庫保存了Height=0,怎么截取到輸入錯誤,提示,并不執行資料保存操作?
uj5u.com熱心網友回復:
WPF處理輸入驗證的方法比較多,MVVM模式下可以用IDataErrorInfo ,也就是再Model上實作這個介面其他的還有 ValidationRule 驗證(大型專案不推薦,要寫一堆ValidationRule ,Xaml上也要寫一堆系結),還可以在自定義控制元件內部實作輸入驗證;
uj5u.com熱心網友回復:
假如用戶輸入中文,文本輸入框雖然會變紅-》在PreviewTextInput或者KeyDown事件中使用正則運算式判斷輸入并設定Handle值即可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/85040.html
標籤:C#
上一篇:無法從“ref System.Array”轉換為“ref double[]”,怎么處理
下一篇:大佬們求助
