2017-12-21 22 views
2

Caliburn Micro MVVMを使用して、ScrollViewerをコードの背後から制御しようとしています。私はviewmodelで処理されるボタンのクリックを持っています。 ScrollViewerのメソッドを呼び出す必要があります。これは、ファイルの背後のview.xaml.csコードからのみ行うことができます。
私は2つのことを試しました。 1)EventHandler 2)Caliburn Micro IHandleCaliburn Micro Handlingメッセージのコード

どちらの方法もコードの後ろにコードが表示されないようです。

ここでオプション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 
} 
} 

非常に感謝何かアドバイス。

答えて

2

ビューで実際に購読する必要があります。試してみてください:

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

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

それは私のためにうまくいきます。

関連する問題