在WPF中绑定验证和SaveCommand

时间:2013-03-20 19:53:43

标签: c# wpf validation xaml data-binding

我有几个TextBox绑定到属性。 这些属性由Validation.ErrorTemplate测试。 我不使用MVVM。

我已添加了一个按钮,以保存我的输入:

<Button Template="{StaticResource BoutonRessourcesTpl}" Command="Save">
  <Button.CommandBindings>
    <CommandBinding Command="Save"  Executed="Save_Executed" CanExecute="Save_CanExecute"/>
  </Button.CommandBindings>
  <Image Source= "Toolbar_Valider.png" Height="16"/>
</Button>

在我的代码背后我写了这个:

    private void Save_Executed(object sender, ExecutedRoutedEventArgs e)
    {
    }

    private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = IsValid(sender as DependencyObject);
    }

    private bool IsValid(DependencyObject obj)
    {
        // The dependency object is valid if it has no errors, 
        //and all of its children (that are dependency objects) are error-free.
        return !Validation.GetHasError(obj) &&
            LogicalTreeHelper.GetChildren(obj)
            .OfType<DependencyObject>()
            .All(child => IsValid(child));
    }

我的问题是我不知道在哪里调用我的代码来保存输入。

1 个答案:

答案 0 :(得分:0)

您将代码放在Save_Executed函数中。有关示例,请参阅:http://msdn.microsoft.com/en-us/library/system.windows.input.commandbinding.aspx。虽然在该示例中,CommandBinding放置在Button的所有者窗口中。