开发者

ValidationRules without binding

开发者 https://www.devze.com 2023-03-10 14:51 出处:网络
I want to use the ValidationRules (and it\'s UI effects) on the textbox without actually binding anything to the textbox.

I want to use the ValidationRules (and it's UI effects) on the textbox without actually binding anything to the textbox.

I want to use the textbox for some input that doesn't bound to anything but need to validate the input after focus is lost using the ValidationRules.

Can it be done?

<TextBox.Text>
   <Binding Path="" UpdateSourceTrigger="LostFocus">
     <Binding.ValidationRules>
        <local:Integers开发者_运维技巧OnlyValidator/>
     </Binding.ValidationRules>
   </Binding>
 </TextBox.Text>


This worked for me:

<TextBox.Text>
    <Binding RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="LostFocus">
      <Binding.ValidationRules>
        <Filters:IntegersOnlyValidator/>
      </Binding.ValidationRules>
   </Binding>
 </TextBox.Text>


Your code-behind should be as independent of the GUI as possible, so I would recommend you to create a property and bind to that. When you want to pass the text to the method, just pass the value of the property.


You could bind to just any string, e.g. create one as the source for the binding:

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>
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号