Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过ValidationRule类';在WPF中运行时的属性值?_Wpf_Binding - Fatal编程技术网

如何通过ValidationRule类';在WPF中运行时的属性值?

如何通过ValidationRule类';在WPF中运行时的属性值?,wpf,binding,Wpf,Binding,我有用于折扣百分比验证的ValidationRule类(如下所示) 公共类折扣规则:ValidationRule { 公共浮点最小值{get;set;} 公共浮点最大值{get;set;} 公共覆盖验证结果验证(对象值,System.Globalization.CultureInfo CultureInfo) { 浮点数_prm=0f; 尝试 { if(value.ToString().Length>0) { _prm=float.Parse(value.ToString()); } } 抓住

我有用于折扣百分比验证的ValidationRule类(如下所示)

公共类折扣规则:ValidationRule
{
公共浮点最小值{get;set;}
公共浮点最大值{get;set;}
公共覆盖验证结果验证(对象值,System.Globalization.CultureInfo CultureInfo)
{
浮点数_prm=0f;
尝试
{
if(value.ToString().Length>0)
{
_prm=float.Parse(value.ToString());
}
}
抓住
{
返回新的ValidationResult(false,“非法字符,请输入Numaric值”);
}
如果((_prmMax))
{
返回新的ValidationResult(false,String.Format(“请输入以下范围内的值:{0}-{1}.”,this.Min,this.Max));
}
返回新的ValidationResult(true,null);
}
}
在XAML中,我们使用这个ValidationRule类,如下所示,并在ValidationRules标记中设置Min和Max属性

<TextBox x:Name="txtDisPer" Width="108" HorizontalAlignment="Center" VerticalAlignment="Center" Validation.Error="txtDisPer_Error" >
    <Binding Path="Rate" UpdateSourceTrigger="PropertyChanged" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" NotifyOnValidationError="True" Mode="TwoWay" NotifyOnSourceUpdated="True" NotifyOnTargetUpdated="True">
        <Binding.ValidationRules>
            <local:DiscountPerRule Max="100" Min="0"/>
        </Binding.ValidationRules>
    </Binding>
</TextBox>


因此,如何在运行时(以编程方式)在C代码中分配/重新分配最小值和最大值最简单的方法是在XAML中命名验证规则:

<local:DiscountPerRule x:Name="discountPerRule" Max="100" Min="0"/>

先生,我已经完善了我的问题,我希望你现在能明白我的问题,谢谢
<local:DiscountPerRule x:Name="discountPerRule" Max="100" Min="0"/>
discountPerRule.Min = 10;
discountPerRule.Max = 50;