WPF - einfaches Commandbindung

Die Logik (TestWindow.xaml.cs"):

public partial class TestWindow : Window
{
    public TestWindow()
    {
        InitializeComponent();

        CommandBinding cb = new CommandBinding(TestCommand, 
            TestCommand_Executed, 
            TestCommand_CanExecute);
        this.CommandBindings.Add(cb);
    }

    public static readonly RoutedUICommand TestCommand =
        new RoutedUICommand("TestCommand", 
        "testencom", 
        typeof(TestWindow));

    private void TestCommand_CanExecute(object sender, 
        CanExecuteRoutedEventArgs e)
    {
        if (txtBox.Text.Length > 0 && txtBox.Text.Length < 10)
        {
            e.CanExecute = true;
        }
        else
        {
            e.CanExecute = false;
        }
    }

    private void TestCommand_Executed(object sender, 
        ExecutedRoutedEventArgs e)
    {
        MessageBox.Show("executed!!!");
    }
}

Die Ansicht (TestWindow.xaml)

<Window x:Class="WpfSpielwiese.GUI.Main.TestWindow"
        xmlns:commands="clr-namespace:WpfSpielwiese.GUI.Main"
        ...>
        <StackPanel>
        ...
        <Button Name="btn" Content="btn" Command="commands:TestWindow.TestCommand" />
        </StackPanel>
</Window>