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

任意の文字列にバインドできます。たとえば、バインドのソースとして作成します。

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 に答える
2

コード ビハインドはできる限り GUI から独立している必要があるため、プロパティを作成してそれにバインドすることをお勧めします。テキストをメソッドに渡したい場合は、プロパティの値を渡すだけです。

于 2011-06-04T11:46:47.443 に答える