提问人:taqasar-elcam 提问时间:10/23/2023 更新时间:10/24/2023 访问量:57
.NET Maui 将数据从 MainActivity.cs 传递到视图模型以显示它
.NET Maui pass data from MainActivity.cs to a view model in order to display it
问:
我在特定于 Android 平台的代码文件 MainActivity.cs 中有一个字符串变量。 我还有一个视图模型,该模型与只有一个标签的视图绑定。
如何将此字符串变量从 MainActivity.cs 传递到我的视图模型?
....
答:
0赞
Jessie Zhang -MSFT
10/24/2023
#1
一个简单的方法是使用 Publish 和 subscribe to messages 来实现这一点。
您可以在视图模型中订阅消息,并在 .MainActivity.cs
但正如说明中提到的,
MessagingCenter
已在 .NET 7 中弃用,并在 CommunityToolkit.Mvvm NuGet 包中替换为。WeakReferenceMessenger
从文档Messenger中,我们可以知道您可以使用以下代码发送和接收消息:
// Create a message in your app
public class MyMessage : ValueChangedMessage<string>
{
public MyMessage(string value): base(value)
{
}
}
// Register a message in your view model
WeakReferenceMessenger.Default.Register<MyMessage>(this, (r, m) =>
{
// Handle the message here, with r being the recipient and m being the
// input message. Using the recipient passed as input makes it so that
// the lambda expression doesn't capture "this", improving performance.
var receivedstring = m.value;
});
// Send a message from `MainActivity.cs`
WeakReferenceMessenger.Default.Send(new MyMessage("test string"));
评论
0赞
Jessie Zhang -MSFT
11/2/2023
嗨,@taqasar-elcam,我可以知道您是否有机会检查我的答案吗?如果您有任何其他问题,我很乐意为您提供帮助。
评论