5

ビューモデルでプロパティが変更された次のテキストボックスがあります。Binding.ValidationRulesを挿入し、間違った値を挿入すると、propertychangedイベントがトリガーされず、その理由がわかりません。何か助けはありますか?

<TextBox Name="RiskCode" HorizontalAlignment="Left" Margin="101.923,8,0,81" TextWrapping="Wrap" Width="56.077" MaxLength="6" Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}">
    <TextBox.Text>
        <Binding Path="RiskCode" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <vm:RiskCodeValidation/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>
4

1 に答える 1

8

を使用しValidationStepます。

http://msdn.microsoft.com/en-us/library/system.windows.controls.validationrule.validationstep.aspx

  • RawProposedValue-変換が発生する前にValidationRuleを実行します。
  • ConvertedProposedValue-値が変換された後、ValidationRuleを実行します。
  • UpdatedValue-ソースが更新された後、ValidationRuleを実行します。
  • CommittedValue-値がソースにコミットされた後、ValidationRuleを実行します。

デフォルトではRawProposedValue、これにより、ソースへのバインドが発生しなくなり、混乱が生じます。代わりに別のオプションを使用してください。

 <Binding.ValidationRules>
   <vm:RiskCodeValidation ValidationStep="UpdatedValue" />
 </Binding.ValidationRules>
于 2012-06-11T18:43:48.123 に答える