c# - Using view method inside ViewModel (MVVM) -


let's using flowdocumentpageviewer , want use find method. how use while following rules of mvvm? i've done few searches , seems solutions mixed.

some suggest aggregate view viewmodel , use call method needed:

ex:

private mainwindow mw;   public mainwindowviewmodel(mainwindow mw) {     this.mw = mw; }  public void find() {     mw.flowdocument.find(); } 

but others suggest it's ok use these methods in view (code-behind) because viewmodel shouldn't calling view specific methods.

lastly i've heard of solving issue using attached behaviours haven't looked extensively see if method suitable or not.

i don't know method correct or if of these methods incorrect on how handle situation. if can give me insight on method preferred , why, grateful.

thanks in advance answers.

i solve problem mvvmlight messaging. (from viewmodel send message , on view's code behind register message.)

jesse liberty of microsoft has a great tutorial on how make use of messaging within mvvm light.

a class act message type:

public class flowdocumentfindmessage {    public string pagename { get; private set; }    // or other properties go here     flowdocumentfindmessage(string pagename){           this.pagename = pagename    } } 

the new find, sends message

public void find() {     var msg = new flowdocumentfindmessage("page");     messenger.default.send<flowdocumentfindmessage>( msg ); } 

code behind, registers new message

messenger.default.register<gotopagemessage>( this, ( action ) => receivemessage( action ));  private object receivemessage( flowdocumentfindmessage action ) {     //do stuff } 

Comments

Popular posts from this blog

java - How to specify maven bin in eclipse maven plugin? -

single sign on - Logging into Plone site with credentials passed through HTTP -

php - Why does AJAX not process login form? -