ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MVVM 모델에서 뷰 상호간에 정보 주고 받기
    WPF 2018. 3. 14. 15:41

    A뷰에서 특정 이벤트 발생 시 B뷰의 DataGrid의 내용을 리프레시 하는 것을 구현해야 한다.


    1) NuGet에서 MvvmLight를 받아서 설치한다

       - using에 추가한다(보낼 뷰, 받을 뷰)

         using GalaSoft.MvvmLight.Messaging;


    2) 상호 교환할 두 개의 뷰 끼리 공유하는 메세지 클래스를 생성한다.

        using GalaSoft.MvvmLight.Messaging;


        public class StringMessage : MessageBase

        {

            public string Message { get; set; }


            public StringMessage()

            {

                Sender = "StringMessage";

            }

        }  


    4) 메세지를 받을 경우 실행 될 롤백 함수를 등록한다.

       Messenger.Default.Register<StringMessage>(this, (message) => StringMessageActionHandler(message));


    5) 롤백 함수를 구현한다.

       private void StringMessageActionHandler(StringMessage message)

       {

                if (message.Message == "REFRESH_ALL")

                    BroadcastSearch();

       }

Designed by Tistory.