WPF Prism v8 : Service와 module

Event Handler를 이용하면 어떨까요??

//IMessageService.cs
namespace FullApp1.Services.Interfaces
{
    public interface IMessageService
    {
        event EventHandler ReceivedMsg;
        void ReceivedMsgAction();

        string GetMessage();
    }
}

//MessageService.cs
namespace FullApp1.Services
{
    public class MessageService : IMessageService
    {
        public event EventHandler ReceivedMsg;

        public void ReceivedMsgAction()
        {
            OnReceivedMsg(new EventArgs());
        }

        private void OnReceivedMsg(EventArgs eventArgs)
        {
            if (ReceivedMsg != null)
            {
                ReceivedMsg(this, eventArgs);
            }
        }

        public string GetMessage()
        {
            return "message";
        }

        public MessageService()
        {
            Task.Run( async () =>
            {
                while (true)
                {
                    OnReceivedMsg(new EventArgs());
                    await Task.Delay(1000);
                }
            });
        }        
    }
}


//ViewAiewModel.cs
namespace FullApp1.Modules.ModuleName.ViewModels
{
    public class ViewAViewModel : RegionViewModelBase
    {
        private string _message;
        public string Message
        {
            get { return _message; }
            set { SetProperty(ref _message, value); }
        }

        public ViewAViewModel(IRegionManager regionManager, IMessageService messageService) :
            base(regionManager)
        {
            Message = messageService.GetMessage();

            messageService.ReceivedMsg += MessageService_ReceivedMsg; ;
        }

        private void MessageService_ReceivedMsg(object sender, System.EventArgs e)
        {
            
        }

        public override void OnNavigatedTo(NavigationContext navigationContext)
        {
            //do something
        }
    }
}


4개의 좋아요