我有一个XAML页面,绑定在c#类MainPage
上
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:local="clr-namespace:Project"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Project.MainPage">
<Label x:Name="l1"/>
<Label x:Name="l2"/>
</ContentPage>
下面是c#类MainPage,它可以访问标签l1
和l2
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void SetText1() => l1.Text = "Text 1";
}
我是否可以创建具有l1
和l2
访问权限的第二类?如果可以,它看起来如何?
我试过了:(不起作用)
public partial class Class2 : ContentPage
{
public Class2()
{
InitializeComponent();
}
private void SetText2() => l2.Text = "Text 2";
}
然后将Class2
放到XAML页中的x:Class
中
x:Class="Project.MainPage, Project.Class2">
1条答案
按热度按时间acruukt91#
根据您的描述,我建议您使用MessagingCenter来接近。
如果要将
Class 2 page
中的Label从Class 2 page
中更改,只需订阅MainPage
中的Class 2 page
,并调用Send
方法通知MainPage
编辑l2
的文本即可。主页:
第2类:
更新日期:
感谢@ewerspej的评论。
因为
MessagingCenter
在.NET 7中已弃用,并在CommunityToolkit.Mvvm NuGet包中替换为WeakReferenceMessenger
。有关详细信息,请参阅Messenger。有关详细信息,请参阅此文档:https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/messagingcenter?view=net-maui-7.0