WPF按钮可使用验证器更新{aml中的文本框

时间:2019-04-21 11:56:16

标签: wpf xaml mvvm

如何获得将文本框中的文本重置为已知值的按钮?在我的示例中,触发了验证规则,因此我无法使用button命令来更新属性,这很好,因为如果属性无效,我不希望设置该属性。我只希望按钮在不涉及该属性的情况下基本上重置xaml中的值。我该怎么办?

   <TextBox Grid.Column="1" Grid.Row="9" HorizontalAlignment="Left"  Height="20" Width="105" Name="Elevation"
             Validation.ErrorTemplate="{StaticResource validationTemplate1}" Style="{StaticResource textBoxInError}">
        <TextBox.Text >
            <Binding Path="Elevation" Mode="TwoWay" UpdateSourceTrigger="LostFocus">
                <Binding.ValidationRules>
                    <rules:NotEmptyValidationRule ValidatesOnTargetUpdated="True" ValidationStep="RawProposedValue"/>
                    <rules:DoubleValidationRule ValidatesOnTargetUpdated="True" ValidationStep="RawProposedValue"/>
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>
    </TextBox>
 <Button Grid.Column="2" Grid.Row="9" Height="20" Command="{Binding ClickResetCommand}" CommandParameter="Elevation" >R</Button>

仍在寻找XAML解决方案,但现在我已将按钮更改为使用OnClick,并在后面的代码中使用以下命令...

  case "Elevation":
   Elevation.Text = "50";
   Validation.ClearInvalid(Elevation.GetBindingExpression(TextBox.TextProperty) ?? throw new InvalidOperationException());
   Elevation.Focus();
  break;

0 个答案:

没有答案