У меня есть требование, при котором я должен вернуть значения TextBox к старому значению, когда пользователь вводит неправильный ввод. Я использую MVVM Framework, поэтому я не хочу писать какой-либо код позади.
Текст и тег TextBox связаны с переменной ViewModel. Таким образом, мое поле Tag TextBox всегда будет иметь старое значение. Я хочу использовать значение поля Tag для возврата моего значения Text.
<Style TargetType="{x:Type TextBox}">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Right"
Foreground="Orange"
FontSize="12pt">
</TextBlock>
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder />
</Border>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true" >
<Setter Property="ToolTip"
Value="{Binding Path=Tag,RelativeSource={RelativeSource Self}}">
</Setter>
<Setter Property="Text"
Value="{Binding Path=Tag,RelativeSource={RelativeSource Self}}">
</Setter>
</Trigger>
</Style.Triggers>
</Style>
<TextBox Width="68" Tag="{Binding SampleText}" Height="23" HorizontalAlignment="Left" Margin="39,37,0,0" VerticalAlignment="Top" >
<TextBox.Text>
<Binding Path="SampleText" NotifyOnValidationError="True" ValidatesOnDataErrors="True" ValidatesOnExceptions="True">
<Binding.ValidationRules>
<val:SampleTextValidator></val:SampleTextValidator>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Теперь При возникновении ошибки TextBox выделяется красным. Я написал триггер, чтобы вернуть значение обратно к исходному значению (значение сохраняется в поле Tag). Тт не работает. Но часть всплывающей подсказки работает. Я запутался полностью. Пожалуйста, помогите, где я делаю неправильно !!! Поправьте меня с примером кода, если это возможно !!!!