Zone de texte LostFocus ne se pose pas lorsque l'on clique sur certains autres contrôles

Dans la suite de la simple application WPF une TextBox est configuré pour mettre à jour une propriété lorsque le focus est perdu à partir de ce contrôle, comme

<DockPanel>
    <ToolBar DockPanel.Dock="Top">
        <Button>Test</Button>
    </ToolBar>
    <TextBox Text="{Binding MyString}" />
</DockPanel>

public MainWindow()
{
    InitializeComponent();
    DataContext = this;
}

public string MyString
{
    get { return _myString; }
    set { _myString = value; }
}

Cependant quand je lance cette application, entrez du texte dans la zone de texte, puis cliquez sur le bouton "Test" de mon point d'arrêt sur la MyString propriété est pas soulevées, aussi tout gestionnaire d'événements pour l' FocusLost événement n'est pas déclenché. Ces événements ne sont soulevées lorsque le focus est perdu à partir du contrôle par d'autres moyens (par exemple, la fenêtre est fermée).

C'est à l'origine des problèmes pour nous que dans la réalité le bouton "Test" contient la logique qui s'appuie sur la MyString propriété d'être mis à jour.

Comment puis-je m'assurer que le FocusLost événement est correctement soulevée et que la liaison est mise à jour lorsque je clique sur le bouton "Test"? Il semble que le problème est en quelque sorte causé par l'utilisation de la ToolBar, que le remplacement de la ToolBar avec un bouton standard n'a pas pour conséquence de ce comportement.

OriginalL'auteur Justin | 2013-06-04