WPF CommandParameter Bindung wird nicht aktualisiert

Ich versuche, die Bindung Command und CommandParameter mit Buttons in einer WPF-Anwendung zu verwenden. Ich habe genau denselben Code, der in Silverlight einwandfrei funktioniert, und frage mich, was ich falsch gemacht habe!

Ich habe ein Kombinationsfeld und eine Schaltfläche, in der der Befehlsparameter an das Kombinationsfeld SelectedItem gebunden ist:

<Window x:Class="WPFCommandBindingProblem.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <StackPanel Orientation="Horizontal">
        <ComboBox x:Name="combo" VerticalAlignment="Top" />
        <Button Content="Do Something" Command="{Binding Path=TestCommand}"
                CommandParameter="{Binding Path=SelectedItem, ElementName=combo}"
                VerticalAlignment="Top"/>        
    </StackPanel>
</Window>

Der Code dahinter lautet wie folgt:

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

        combo.ItemsSource = new List<string>(){
            "One", "Two", "Three", "Four", "Five"
        };

        this.DataContext = this;

    }

    public TestCommand TestCommand
    {
        get
        {
            return new TestCommand();
        }
    }

}

public class TestCommand : ICommand
{
    public bool CanExecute(object parameter)
    {
        return parameter is string && (string)parameter != "Two";
    }

    public void Execute(object parameter)
    {
        MessageBox.Show(parameter as string);
    }

    public event EventHandler CanExecuteChanged;

}

Wenn sich in meiner Silverlight-Anwendung das SelectedItem des Kombinationsfelds ändert, wird durch die CommandParameter-Bindung die CanExecute-Methode für meinen Befehl mit dem aktuell ausgewählten Element neu ausgewertet und der Status der Schaltfläche entsprechend aktualisiert.

With WPF wird die CanExecute-Methode aus irgendeinem Grund nur aufgerufen, wenn die Bindung beim Analysieren der XAML erstellt wird.

Irgendwelche Ideen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage