0
UserControlのLostFocusイベントに問題があります。WPF LostFocus of UserControlが起動しない
ネット上でいくつかの解決策が見つかりましたが、私にとってはうまくいかないようです。
私のユーザーコントロールは、このような行動を持っています
<dxmvvm:EventToCommand PassEventArgsToCommand="True"
Command="{Binding LostFocusCommand}"
EventName="LostKeyboardFocus">
<dxmvvm:EventToCommand.EventArgsConverter>
<dx:EventArgsToDataRowConverter />
</dxmvvm:EventToCommand.EventArgsConverter>
</dxmvvm:EventToCommand>
コマンドだけフラグを設定します。
private void ExecuteLostFocusCommand(object obj)
{
var viewModel = obj as ITreeViewLeafViewModel;
if (viewModel != null)
{
viewModel.IsEditing = false;
}
}
私は別のユーザーコントロールをクリックしたとき、これは動作します。しかし、私が空のスペースをクリックすると、私はUserControlを保持しているウィンドウがフォーカスを取得し、私のUserControlがそれを失うことが予想される。しかし、私はウィンドウのためにFocusable="True"
を設定したとしても、これは起こりません。
((Window) sender).Focus();
しかし、これも動作しません:私はまた、ウィンドウの
MouseDown
を処理し、そこにウィンドウをフォーカスしてみました。
誰かが間違っていることを知っていますか?
は、あなたが同じウィンドウ内の別のフォーカス可能なコントロールを持っていますか:これはどのように? –
はい、それをクリックすると、LostFocusが最初の要素に対して起動されます。 – user3292642
それでは何が問題なのですか? 'Window.Focus'はフォーカスをウィンドウに設定し、最初のフォーカス可能なコントロールをフォーカスします。フォーカスを失うことができず、他のものに移されなければなりません。ウィンドウ自体の代わりに、フォーカスを得ることができるものを選択します。 –