-
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();
}