0
試圖合併ValidatableBindableBase
以便於驗證實現,我注意到它不可用於Prism.Wpf
。是否在Prism.Wpf中實現了ValidatableBindableBase?爲什麼?
正是在Prism.Windows
(窗10 UWP)可用但是......
所以可能我已經錯過了(這裏是當時的)?
還是真的沒有在WPF
(然後爲什麼)實施?
試圖合併ValidatableBindableBase
以便於驗證實現,我注意到它不可用於Prism.Wpf
。是否在Prism.Wpf中實現了ValidatableBindableBase?爲什麼?
正是在Prism.Windows
(窗10 UWP)可用但是......
所以可能我已經錯過了(這裏是當時的)?
還是真的沒有在WPF
(然後爲什麼)實施?
Prism.Wpf中的驗證通過執行IDataErrorInfo
或INotifyDataErrorInfo
接口完成。舉例:
public abstract class DomainObject : INotifyPropertyChanged, INotifyDataErrorInfo
{
private ErrorsContainer<ValidationResult> errorsContainer =
new ErrorsContainer<ValidationResult>(
pn => this.RaiseErrorsChanged(pn));
public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;
public bool HasErrors
{
get { return this.ErrorsContainer.HasErrors; }
}
public IEnumerable GetErrors(string propertyName)
{
return this.errorsContainer.GetErrors(propertyName);
}
protected void RaiseErrorsChanged(string propertyName)
{
var handler = this.ErrorsChanged;
if (handler != null)
{
handler(this, new DataErrorsChangedEventArgs(propertyName));
}
}
...
}
這也在Prism的documentation中解釋過。
那麼爲什麼UWP不這樣工作呢?因爲在UWP上,您無法訪問這些接口,因此需要ValidatableBindableBase
和BindableValidator
類。如果出於某種原因,您喜歡這種方法,則無法阻止您將UWP課程帶入您的WPF解決方案,所有代碼均爲open source。
BindableValidator有 var resourceLoader = ResourceLoader.GetForCurrentView(mapId); 這將取代什麼? –