代码隐藏中的 Caliburn 微处理消息

Caliburn Micro Handling Message in Code Behind

使用 Caliburn Micro MVVM,我试图从代码后面控制 ScrollViewer。我有一个在视图模型中处理的按钮单击。我还需要在 ScrollViewer 上调用方法,我相信这只能从 view.xaml.cs 代码隐藏文件中完成。
我试过两件事。 1) 事件处理器 2) Caliburn 微型 IHandle

这两种方式似乎都无法找到文件背后的代码。

这是选项 2 的代码

视图模型:

_eventAggregator.PublishOnUIThread(new MyClickMessage(this));

代码隐藏(view.xaml.cs)文件:

public partial class MyClass: UserControl, IHandle<MyClickMessage>
{ 
public MyClass()
{
    InitializeComponent();
}

public void Handle(MyClickMessage message)
{
NOT HITTING HERE
}
}

非常感谢任何建议。

如果您实际订阅了视图,它应该可以工作。试试这个:

public partial class MyClass : UserControl, IHandle<MyClickMessage>
{
    public MyClass()
    {
        InitializeComponent();
        IEventAggregator eventAggregator = IoC.Get<IEventAggregator>();
        eventAggregator.Subscribe(this);
    }

    public void Handle(MyClickMessage message)
    {
        //...
    }
}

对我来说效果很好。