我想在文本框上使用ValidationRules(及其UI效果),而不实际将任何内容绑定到文本框。
我想将文本框用于一些未绑定到任何内容的输入,但需要在使用ValidationRules丢失焦点后验证输入。
可以吗?
<TextBox.Text>
<Binding Path="" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:IntegersOnlyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
答案 0 :(得分:14)
这对我有用:
<TextBox.Text>
<Binding RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<Filters:IntegersOnlyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
答案 1 :(得分:2)
您的代码隐藏应尽可能独立于GUI,因此我建议您创建一个属性并绑定到该属性。如果要将文本传递给方法,只需传递属性的值。
答案 2 :(得分:2)
您可以绑定到任何字符串,例如创建一个作为绑定的源:
xmlns:sys="clr-namespace:System;assembly=mscorlib.dll"
<TextBox>
<TextBox.Text>
<Binding Path=".">
<Binding.Source>
<sys:String>Default Text</sys:String>
</Binding.Source>
<Binding.ValidationRules>
<!-- Validation Rules -->
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>