使用Caliburn Micro MVVM,我试图从后面的代码中控制ScrollViewer
。我在viewmodel中处理了一个按钮。我还需要在ScrollViewer
上调用方法,我相信只能通过view.xaml.cs代码后面的文件来完成。
我尝试了两件事。
1)EventHandler
2)Caliburn Micro IHandle
这两种方式似乎都没有达到文件背后的代码。
这里是选项2的代码
ViewModel:
_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
}
}
非常感谢任何建议。
答案 0 :(得分:2)
如果您在视图中实际订阅,它应该可以工作。试试这个:
public partial class MyClass : UserControl, IHandle<MyClickMessage>
{
public MyClass()
{
InitializeComponent();
IEventAggregator eventAggregator = IoC.Get<IEventAggregator>();
eventAggregator.Subscribe(this);
}
public void Handle(MyClickMessage message)
{
//...
}
}
它适用于我。