我在Window中使用Canvas,使其像MDI应用程序一样。
画布将包含多个UserControls,即子窗口。
我可以在某些文本框的GotFocus事件中在Canvas中打开一个新的UserControl。
但是当我单击Enter或关闭新窗口时,我想将焦点设置回旧的UserControl的下一个TextBox?这是我无法实现的。
我在Caliburn Micro上使用WPF?目前使用EventAggreagator在TextBox的GotFocus事件上打开新的UserControl。
答案 0 :(得分: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();
}
}