来爱清 发表于 2015-4-10 09:39:00

【XAML】C1NumericBox如何弹出验证提示

请问 C1NumericBox控件 如何弹出验证提示?
谢谢!

Alice 发表于 2015-4-10 10:35:00

回复 1楼来爱清的帖子

你可以设置C1NumericBox的 Minimum 和Maximum属性规定值的验证范围。
你也可以选择一个范围验证模式,比如使用RangeValidationMode属性。

来爱清 发表于 2015-4-10 11:33:00

回复 2楼Alice的帖子

谢谢Alice的回复,我可能表达不清楚,请看下图



上图“名称”文本框是C1MaskedTextBox控件,通过以下代码设置ValidatesOnExceptions,ValidatesOnDataErrors,NotifyOnValidationError属性为True,这样就可以弹出验证提示

<c1:C1MaskedTextBox MaxLength="20"
Text="{Binding FName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, ValidatesOnDataErrors=True, NotifyOnValidationError=True}"
Name="TbFName" />


      public String FName
      {
            get { return Item.FName; }
            set
            {
                if (Item.FName != value)
                {
                  Item.FName = value;
                  RaisePropertyChanged(() => FName);
                }
            }
      }

目前主要问题:
1、在“层数”文本框使用的是C1NumericBox控件,参照C1MaskedTextBox 上面方式来设置验证提示,希望当在文本框清空数字时或者获得焦点时能弹出验证提示,提示“必填”信息,现在结果不能弹出验证提示了。请问C1NumericBox应该如何处理触发验证提示的?
2、从C1NumericBox查看其模板时有个C1ValidationDecorator这个是做什么用途,可否用于弹出验证提示

谢谢!

Alice 发表于 2015-4-10 13:37:00

回复 3楼来爱清的帖子

C1NumericBox控件默认值是0,不是空。
尝试msdn提供的值验证的方法如下:
https://msdn.microsoft.com/en-us/library/system.windows.data.binding.validatesondataerrors(v=vs.110).aspx

将TextBox控件换成C1NumericBox控件,但是没有起作用。

接下来我会验证为什么没有起作用,如果实现会给你个反馈。

来爱清 发表于 2015-4-10 13:48:00

回复 4楼Alice的帖子

谢谢Alice的回复!
C1NumericBox控件有AllowNull属性,默认设置AllowNull=&quot;True&quot;,这个是可以填空,只是不知道为什么没有触发到验证

来爱清 发表于 2015-4-10 16:11:00

目前C1NumericBox控件发现一个问题,如果填了数字,就会触发PropertyChanged事件,但是如果清空数字,就不会触发PropertyChanged事件,估计这样原因就不能进一步触发验证了。在C1MaskedTextBox 控件里填空值是可以触发的,C1NumericBox控件有没有办法在清空数字时触发PropertyChanged事件的?
谢谢!

Alice 发表于 2015-4-10 17:27:00

回复 6楼来爱清的帖子

你的问题我们收到。
很抱歉给你带来使用上的不便。
这里的确有不能触发验证的问题,具体原因还在调查中。
我会尽快帮助你解决这个问题,给你个解决方案。

来爱清 发表于 2015-4-10 18:26:00

回复 7楼Alice的帖子

好的,谢谢!

Alice 发表于 2015-4-13 09:29:00

回复 6楼来爱清的帖子

如下是我们专门为你做的解决方案。
当文字区域是null的时候会提示“必填”.
请参考附件的示例,有问题请提出。

来爱清 发表于 2015-4-13 14:30:00

回复 9楼Alice的帖子

谢谢Alice的回复,方案已看了,这是通过设置ToolTip来显示验证结果提示,这个试过是可以,可惜目前不能使用这个ToolTip属性,它似乎不能读取特性的“必填”信息。

见下图C1MaskedTextBox文本控件不通过ToolTip属性来显示提示,目前好像是通过控件内部的C1ValidationDecorator来弹出提示效果,所以希望C1NumericBox控件也通过这种方式显示


<c1:C1ValidationDecorator x:Name="ValidationDecorator" CornerRadius="{TemplateBinding CornerRadius}" Style="{TemplateBinding ValidationDecoratorStyle}" Target="{Binding RelativeSource={RelativeSource TemplatedParent}}"/>
页: [1] 2 3
查看完整版本: 【XAML】C1NumericBox如何弹出验证提示