簡體   English   中英

如何實施通用控制驗證?

[英]How to implement generic control validation?

最近,我一直試圖養成在項目中使用MVVM設計模式的習慣,以便在應用程序中分離各個模塊並使之適合於單元測試。

我已經進入輸入驗證。 我正在ViewModel中實現IDataErrorInfo ...對於TextBox來說,這似乎工作得很好。

我目前正在嘗試找出如何在綁定到自定義對象的ObservableCollection的ListBox控件上實現IDataErrorInfo。 問題是每行(ListBoxItem)直接更新模型,因此繞過了我在ViewModel中的IDataErrorInfo實現。 所以我看的方式我可以做兩件事之一-

1)創建一個輔助ViewModel(代表ListBoxItems),我用它來填充Observable集合並在其上實現IDataErrorInfo。

2)在模型上實現IDataErrorInfo。 但是,由於ViewModel主要用於中繼來自我的模型的引用,因此我可能會考慮將我的所有IDataErrorInfo實現都移到我的Model類中以實現一致性...

你會怎么做?

還有...關於創建可重用的驗證方法的任何建議,我可以輕松地將其應用於任何類型的Control?

干杯

你會怎么做?

當然,第一個選項是為列表項創建輔助視圖模型。 您不應該在模型中實現IDataErrorInfo ,因為這是特定於UI的功能。

可重用的驗證方法,我可以輕松地將其應用於任何類型的控件

您誤解了MVVM。 IDataErrorInfo用於視圖模型驗證,而不用於控件驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM