Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Caliburn微处理代码隐藏中的消息_Wpf_Event Handling_Caliburn.micro - Fatal编程技术网

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

Wpf Caliburn微处理代码隐藏中的消息,wpf,event-handling,caliburn.micro,Wpf,Event Handling,Caliburn.micro,使用Caliburn Micro MVVM,我试图从代码隐藏控制ScrollViewer。我有一个在viewmodel中处理的按钮单击。我还需要调用ScrollViewer上的方法,我认为这只能从view.xaml.cs代码隐藏文件中完成。 我试过两种方法。 1) 事件处理程序 2) 卡利本微手柄 这两种方法似乎都不符合代码隐藏文件 下面是选项2的代码 视图模型: _eventAggregator.PublishOnUIThread(new MyClickMessage(this)); 代码隐

使用Caliburn Micro MVVM,我试图从代码隐藏控制
ScrollViewer
。我有一个在viewmodel中处理的按钮单击。我还需要调用ScrollViewer上的方法,我认为这只能从view.xaml.cs代码隐藏文件中完成。
我试过两种方法。 1) 事件处理程序 2) 卡利本微手柄

这两种方法似乎都不符合代码隐藏文件

下面是选项2的代码

视图模型:

_eventAggregator.PublishOnUIThread(new MyClickMessage(this));
代码隐藏(view.xaml.cs)文件:

公共部分类MyClass:UserControl,IHandle
{ 
公共MyClass()
{
初始化组件();
}
公共无效句柄(MyClickMessage消息)
{
这里不打球
}
}

非常感谢您的任何建议。

如果您确实在视图中订阅了,它应该会起作用。试试这个:

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

    public void Handle(MyClickMessage message)
    {
        //...
    }
}
公共部分类MyClass:UserControl,IHandle
{
公共MyClass()
{
初始化组件();
IEventAggregator eventAggregator=IoC.Get();
eventAggregator.Subscribe(此);
}
公共无效句柄(MyClickMessage消息)
{
//...
}
}
这对我来说很好

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

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