ValidationRules没有绑定

时间:2011-06-04 09:57:54

标签: wpf data-binding validation validationrules

我想在文本框上使用ValidationRules(及其UI效果),而不实际将任何内容绑定到文本框。

我想将文本框用于一些未绑定到任何内容的输入,但需要在使用ValidationRules丢失焦点后验证输入。

可以吗?

<TextBox.Text>
   <Binding Path="" UpdateSourceTrigger="LostFocus">
     <Binding.ValidationRules>
        <local:IntegersOnlyValidator/>
     </Binding.ValidationRules>
   </Binding>
 </TextBox.Text>

3 个答案:

答案 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>