18

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

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

可以做到吗?

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

3 回答 3

14

这对我有用:

<TextBox.Text>
    <Binding RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="LostFocus">
      <Binding.ValidationRules>
        <Filters:IntegersOnlyValidator/>
      </Binding.ValidationRules>
   </Binding>
 </TextBox.Text>
于 2011-06-08T13:09:06.893 回答
2

您的代码隐藏应尽可能独立于 GUI,因此我建议您创建一个属性并绑定到该属性。当您想将文本传递给方法时,只需传递属性的值即可。

于 2011-06-04T11:46:47.443 回答
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>
于 2011-06-04T14:51:04.680 回答