티스토리 뷰
반응형
Microsoft.Toolkit.MVVM을 이용한 간단한 프레임워크 part7 - Windows Community Toolkit Upgrade (tistory.com)
기본적인 내용은 위의 프로젝트를 참고 부탁드립니다.
툴킷의 기능 중 Message 기능을 사용할 때 수신하는 곳에서 아래와 같이 수신 등록을 하고
//LayerPopupMessage 수신 등록
WeakReferenceMessenger.Default.Register<LayerPopupMessage>(this, OnLayerPopupMessage);
메시지 발생시키는 곳에서는 아래와 같이 사용합니다.
WeakReferenceMessenger.Default.Send(new LayerPopupMessage(true) { ControlName = "AboutControl" });
그런데, 메시지를 보낼 때 구분자를 추가해서, 메시지는 동일한데 구분자를 이용해서, A나 B화면 선택적으로 메시지를 보내야하는 경우가 생길 수 있습니다. 그런 경우에는 아래와 같이 사용하시면 됩니다.
Token을 이용해서 수신처 지정
LayerPopupMessage가 Send될 때 Token(여기서는 string)이 "TEST1"이면, OnLayerPopupMessageToken1 메소드를 호출하고, "TEST2"이면 OnLayerPopupMessageToken2 메소드가 호출되도록 등록합니다.
WeakReferenceMessenger.Default.Register<LayerPopupMessage, string>(this, "TEST1", OnLayerPopupMessageToken1);
WeakReferenceMessenger.Default.Register<LayerPopupMessage, string>(this, "TEST2", OnLayerPopupMessageToken2);
private void OnLayerPopupMessageToken1(object recipient, LayerPopupMessage message)
{
Debug.WriteLine("TEST1 Token");
}
private void OnLayerPopupMessageToken2(object recipient, LayerPopupMessage message)
{
Debug.WriteLine("TEST2 Token");
}
Send할때는 아래와 같이 맨 끝에 Token 값을 입력합니다.
WeakReferenceMessenger.Default.Send(new LayerPopupMessage(true) { ControlName = "AboutControl" }, "TEST1");
WeakReferenceMessenger.Default.Send(new LayerPopupMessage(true) { ControlName = "AboutControl" }, "TEST2");
여기서는 하나의 뷰모델에 2개를 등록하고 테스트를 했지만, 다른 뷰모델에 각각 다른 Token값을 이용해서 지정하면, 특정 화면으로만 Message를 보낼 수 있습니다.
반응형
'WPF .NET' 카테고리의 다른 글
Microsoft.Xaml.Behaviors.Wpf를 사용하기 Part1 (0) | 2023.02.06 |
---|---|
Trigger를 사용해서 동적 UI 구성하기 Part4 - EventTrigger (2) | 2023.01.25 |
Trigger를 사용해서 동적 UI 구성하기 Part3 - DataTrigger (0) | 2022.12.29 |
Trigger를 사용해서 동적 UI 구성하기 Part2 (0) | 2022.12.21 |
Trigger를 사용해서 동적 UI 구성하기 Part1 - Overview (0) | 2022.12.14 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- LINQ
- ef core
- windows 11
- Visual Studio 2022
- WPF
- Microsoft
- #MVVM
- Windows 10
- Build 2016
- #prism
- #Windows Template Studio
- uno platform
- Behavior
- ComboBox
- UWP
- MVVM
- uno-platform
- dotNETconf
- XAML
- #uwp
- C#
- visual studio 2019
- .net
- Cross-platform
- IOT
- PRISM
- kiosk
- .net 5.0
- Always Encrypted
- Bot Framework
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함