2017-12-21 21 views
2

Mit Caliburn Micro MVVM, versuche ich eine ScrollViewer von Code hinter zu steuern. Ich habe einen Knopfklick, der im Viewmodel behandelt wird. Ich muss auch Methoden auf eine ScrollViewer aufrufen, die ich glaube, kann nur aus dem view.xaml.cs Code hinter der Datei erfolgen.
Ich habe 2 Dinge ausprobiert. 1) Eventhandler 2) Caliburn Micro iHandleCaliburn Micro Handling Nachricht im Code hinter

Weder Art und Weise scheint den Code hinter Datei zu schlagen.

Hier ist der Code für die Option 2

Ansichtsmodell:

_eventAggregator.PublishOnUIThread(new MyClickMessage(this)); 

-Code-behind (view.xaml.cs) Datei:

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

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

Jede Beratung immens geschätzt.

Antwort

2

Es sollte funktionieren vorausgesetzt, dass Sie tatsächlich in der Ansicht abonnieren. Versuchen Sie dies:

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

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

Es funktioniert ganz gut für mich.

Verwandte Themen