WPF开发中的第三方库:ValueConverters的使用及属性验证方式

在wpf开发中,你会经常遇到一些需要验证填写内容不能为空,或者是其他的一些规则,比如正则表达式等,以下就是一个示例,同时提供了很多种方式。

1.方式1.使用第三方库:ValueConverters

第一步:在项目中nuget引用ValueConverters

image

第二步:新建View:ValueConverterView


<Window.Resources>
<conv:BoolToVisibilityConverter x:Key="AgreeConvert" IsInverted="True"/>

</Window.Resources>


<Grid.RowDefinitions>


</Grid.RowDefinitions>
























第三步:引用命名空间:xmlns:conv="clr-namespace:ValueConverters;assembly=ValueConverters",并使用ValueConverterGroup定义每个不一样的验证,并显示,如果按照规则填好,就取消错误提示。


<Window.Resources>
<conv:BoolToVisibilityConverter x:Key="AgreeConvert" IsInverted="True"/>

<conv:ValueConverterGroup x:Key="userNameToVisibilityConverter">
conv:StringIsNotNullOrEmptyConverter/
conv:BoolInverter/
conv:BoolToVisibilityConverter/
</conv:ValueConverterGroup>

<conv:ValueConverterGroup x:Key="passwordToVisibilityConverter">
<conv:IsInRangeConverter MaxValue="16" MinValue="6"/>
conv:BoolInverter/
conv:BoolToVisibilityConverter/
</conv:ValueConverterGroup>

<conv:ValueConverterGroup x:Key="ageToVisibilityConverter">
conv:StringToDecimalConverter/
<conv:IsInRangeConverter MaxValue="99" MinValue="18"/>
conv:BoolInverter/
conv:BoolToVisibilityConverter/
</conv:ValueConverterGroup>

<conv:StringIsNotNullOrEmptyConverter x:Key="StringIsNotNullOrEmptyConverter"/>

</Window.Resources>


<Grid.RowDefinitions>


</Grid.RowDefinitions>
























效果如下:

image

内容填充完,红色提示消失,

image

当然,这还不算完善,我们可以使用一些更加完善的方式。如以下的形式

2.方式2:使用IDataErrorInfo,直接后台绑定需要提示的内容:

第一步:View页面展示如下:


<Window.Resources>

</Window.Resources>


<Grid.RowDefinitions>


</Grid.RowDefinitions>













posted @ 2025-07-10 23:57  似梦亦非梦  阅读(348)  评论(0)    收藏  举报