0

MDIアプリケーションのようにするために、ウィンドウ内でキャンバスを使用しています。

キャンバスには、子ウィンドウである複数の UserControls が保持されます。

一部のテキスト ボックスの GotFocus イベントで、Canvas 内で新しい UserControl を開くことができます。

しかし、Enter をクリックするか、新しいウィンドウを閉じると、フォーカスを古い UserControl の次の TextBox に戻したいですか? 私は達成できません。

Caliburn Micro で WPF を使用していますか? 現在、EventAggregator を使用して、TextBox の GotFocus イベントで新しい UserControl を開きます。

4

1 に答える 1

1

私は最近似たようなことをしましたが、私が思いついた唯一のことは、を使用しIEventAggregatorて UserControl が閉じられたという通知を発行することでした。

public class ControlClosedEvent
{
    public ControlClosedEvent()
    {
        // can be an empty event for all intents and purposes
    }
} 

UserControl が閉じるたびに、イベントを発行します。

 _events.Publish( new ControlClosedEvent() );

そして消費者:

public partial class SomeView : UserControl, IHandle<ControlClosedEvent>
{
    public void Handle( ControlClosedEvent message )
    {
        // ugly way of setting the text box as focused
        SomeTextBox.Focus();
    }
}
于 2012-10-23T16:11:02.273 に答える