2018-06-24 (日)
[WPF] Menuクリック時にLostFocusによるバインド更新されない
メニューバーをクリックしてもTextBoxにフォーカスが残り、UpdateTrigerが呼ばれずTextBoxにバインドした値が更新されない罠。
FocusManager.IsFocusScopeで解決。
環境
- Windows 10 Pro 64bit 1709
- Visual Studio Community 2017 15.7.3
- .NET Framework 4.6.1
- C# 7.0
結果
Menu
にFocusManager.IsFocusScope="False"
を設定すれば良い。
Menuをクリックすると、LostFocusが実行されるようになる。
<Window>
<DockPanel>
<Menu DockPanel.Dock="Top" FocusManager.IsFocusScope="False">
<MenuItem Header="保存" Command="{Binding SaveCommand}"/>
</Menu>
<TextBox Text="{Binding Name}"/>
</DockPanel>
</Window>
感謝
関連記事
新着記事