ValidationRules без привязки
Я хочу использовать ValidationRules (и его эффекты пользовательского интерфейса) в текстовом поле, фактически не привязывая ничего к текстовому полю.
Я хочу использовать текстовое поле для некоторого ввода, который не привязан ни к чему, кроме необходимости проверять ввод после потери фокуса с помощью ValidationRules.
Можно ли это сделать?
<TextBox.Text>
<Binding Path="" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:IntegersOnlyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
Ответы
Ответ 1
Это сработало для меня:
<TextBox.Text>
<Binding RelativeSource="{RelativeSource Self}" Path="Text" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<Filters:IntegersOnlyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
Ответ 2
Ваш код-код должен быть как можно более независимым от GUI, поэтому я бы рекомендовал вам создать свойство и привязать его. Когда вы хотите передать текст методу, просто передайте значение свойства.
Ответ 3
Вы можете привязать только любую строку, например. создайте его как источник для привязки:
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>