0
A
回答
2
您可以爲一個TextBox
<Style x:Key="TextBoxWithValidation" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource TextBoxValidationTemplate}"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="{StaticResource BackgroundValidationBrush}"/>
<Setter
Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self},
Path=(Validation.Errors)[0].ErrorContent)}"
/>
</Trigger>
</Style.Triggers>
</Style>
凡BackgroundValidationBrush會說粉紅色做這樣的事情。
請注意,在沒有錯誤的情況下,ToolTip綁定到(Validation.Errors)[0] .ErrorContent的常見解決方案將導致大量調試問題(技術術語),所以最好使用類似轉換器這樣的:
[ValueConversion(typeof(ReadOnlyObservableCollection<ValidationError>), typeof(string))]
public class ValidationErrorsToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
var errors = value as ReadOnlyObservableCollection<ValidationError>;
// If there are no errors then return an empty string.
// This prevents debug exception messages that result from the usual Xaml of "Path=(Validation.Errors)[0].ErrorContent".
// Instead we use "Path=(Validation.Errors), Converter={StaticResource ValidationErrorsConverter}".
if (errors == null)
{
return string.Empty;
}
var errors2 = errors.Select(e => e.ErrorContent).OfType<string>().ToArray();
return errors.Any() ? string.Join("\n", errors2) : string.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
throw new NotImplementedException();
}
}
和我們可以使用
<converters:ValidationErrorsToStringConverter x:Key="ValidationErrorsConverter"/>
<!-- Style to be used as the base style for all text boxes -->
<Style x:Key="TextBoxWithValidation" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource TextBoxValidationTemplate}"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="{StaticResource BackgroundValidationBrush}"/>
<Setter
Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self},
Path=(Validation.Errors),
Converter={StaticResource ValidationErrorsConverter}}"
/>
</Trigger>
</Style.Triggers>
</Style>
0
我想你尋找的東西,像
能否使用sniplet:
<Binding.ValidationRules>
<DataErrorValidationRule/>
</Binding.ValidationRules>
定義的驗證規則,並在出現故障的情況下,你會得到一個紅色矩形 角落找尋相關的控制。
0
將附加屬性Validaton.ErrorTemplate
設置爲您的TextBox
樣式。 (見一個例子文檔)
相關問題
- 1. 在Javascript中設置多樣式屬性時出現錯誤
- 2. 錯誤出現時的樣式DropdownListFor
- 3. 設置onclicklistener時出現}錯誤
- 4. 上游未設置時出現錯誤
- 5. 設置django_language Cookie時出現LocaleMiddleware錯誤
- 6. 當我嘗試爲Label設置文本時出現錯誤?
- 7. 如何在設置satchmo時出現模板語法錯誤?
- 8. 使用DateTime設置日期時出現Symfony2格式錯誤
- 9. Android:EditText不會以編程方式設置樣式時出現
- 10. 設置Uri時出現錯誤的位圖錯誤
- 11. 當設置UIPageControl的CurrentPageIndicatorTintColor時出現NSRangeException
- 12. 設置彈簧安全配置時出現錯誤
- 13. 初始Firebase設置後出現錯誤
- 14. 當跑步流浪時出現錯誤
- 15. 當調用setTimeout時出現NaN錯誤
- 16. ParsleyJS - 當時出現一個錯誤
- 17. 當設置表單值時,JQuery val()拋出運行時錯誤
- 18. 添加轉角樣式時出現未知錯誤
- 19. 定義樣式表時出現錯誤1120
- 20. 在設置innerhtml時出現IE未知運行時錯誤
- 21. 數組設置拋出啓動時出現錯誤 - CS0021錯誤(C#)
- 22. 爲Django設置SQLite3時出現錯誤配置的數據庫錯誤
- 23. 嘗試使用JavaScript設置樣式時出錯
- 24. atlcom.h當爲平臺設置爲x64而構建時出現錯誤
- 25. 當我將slotMinutes設置爲50的值在jquery fullcalendar時出現錯誤
- 26. 當AsyncRendering設置爲false時ReportViewer錯誤
- 27. 如何設置主機頭IIS 7出現錯誤? asp.net
- 28. 當通過json undefined成員時,配置javascript會出現錯誤?
- 29. 當出現嚴重錯誤時,如何不顯示ValidationSummary?
- 30. 配置LDAP時出現Tomcat錯誤
我只看到傳遞給我的一個轉換器的錯誤信息,即使一個以上的ViewModel's.GetErrors(「屬性名」)存在...想法? – gap 2016-06-23 20:32:32