首页 新闻 会员 周边 捐助

c# wpf 居然找不到textbox限制值,求救,谢谢(有源码)!

0
悬赏园豆:5 [已解决问题] 解决于 2023-06-02 17:18

就是在textbox输入大于100的数,被限制了。想把最大限制值改一下,但找不到入口,
第一张图是输入限制界面;第二张图是源代码的限制值100,不知哪里来的;第三四图是wpf界面代码,看不到有什么特别。
很奇怪,求助大神,谢谢!相关源码下载(博客园内地址):https://files.cnblogs.com/files/blogs/782609/UsrProcessStepEdit.rar?t=1685585241&download=true


tea2007的主页 tea2007 | 初学一级 | 园豆:7
提问于:2023-05-31 17:05
< >
分享
最佳答案
0

在WPF中,文本框的最大值限制通常是通过设置ValidationRule来实现的。您可以在XAML中搜索ValidationRuleValidation.ErrorTemplate,这些都是用于设置文本框验证规则和错误模板的属性。

ValidationRule中,可以使用RangeValidationRule来设置文本框的最大值限制。例如,以下代码将文本框的最大值设置为100:

<TextBox>
<TextBox.Text>
<Binding Path="MyValue" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<DataErrorValidationRule/>
<RangeValidationRule Minimum="0" Maximum="100"
ValidationStep="RawProposedValue"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>

在上面的代码中,RangeValidationRule设置了文本框的最大值为100。如果用户输入的值大于100,则会显示验证错误消息。

如果您无法找到XAML中的验证规则,您可以在C#代码中查找。在代码中,您可以使用Binding.ValidationRules属性来设置验证规则,例如:

TextBox textBox = new TextBox();
Binding binding = new Binding("MyValue");
binding.ValidationRules.Add(new RangeValidationRule { Minimum = 0, Maximum = 100 });
textBox.SetBinding(TextBox.TextProperty, binding);

在上面的代码中,我们创建了一个新的RangeValidationRule并将其添加到Binding.ValidationRules属性中。这将设置文本框的最大值为100。

收获园豆:5
lanedm | 老鸟四级 |园豆:2396 | 2023-06-01 08:33

我搜过xaml 没有你说的ValidationRule、Validation.ErrorTemplate 。我这边用的是dev的textbox,会不会另有途径?我把源码一并发上来,麻烦看看,谢谢。相关源码下载地址(博客园内地址):https://files.cnblogs.com/files/blogs/782609/UsrProcessStepEdit.rar?t=1685585241&download=true

tea2007 | 园豆:7 (初学一级) | 2023-06-01 10:08

@tea2007: vs编辑器->在文件中查找->查找范围,整个解决方案->查找文件类型 .cs;.xml;*.xaml->查找关键字 100;如果找到,结果会列在vs编辑器的底部窗口,如果找不到,那这个校验就是封装在你底层的其他dll里面,没办法改了

lanedm | 园豆:2396 (老鸟四级) | 2023-06-01 10:22

@lanedm:

原来限制值保存在数据表里,问题解决了,谢谢!

tea2007 | 园豆:7 (初学一级) | 2023-06-02 17:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册