Скажите, что я пытаюсь реализовать часть функциональности, в которой текстовое поле позволяет вводить только целые числа пользователем. Я могу реализовать эти два способа, используя ValidationRule, который проверяет, что пользователь вводит и привязывает его к свойству text через XAML, или я могу создать новое поведение и привязать его к элементу управления (а не к привязке).ValidationRule vs Behavior in WPF
Примеры XAML на обоих:
Поведение: <TextBox behaviors:DigitsOnlyBehavior.IsDigitOnly="True"/>
ValidationRule, который связывается с окна Text собственности
<TextBox>
<TextBox.Text>
<Binding RelativeSource = "{RelativeSource Mode=FindAncestor, AncestorType=Window}" Path="Text" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
<Binding.ValidationRules>
<utils:RestrictInputTypeValidator Restriction="IntegersOnly" ValidatesOnTargetUpdated="True"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Каковы преимущества и недостатки этих подходов? Когда я должен их использовать? Или это вопрос предпочтения?
Почему вы не используете [WPF Toolkit] (http://wpf.codeplex.com/)? – HichemSeeSharp