在 Xamarin 中,从一个页面传输文本并在另一个页面显示它,通常涉及使用导航服务和数据绑定。以下是一个基本的示例,展示了如何实现这一功能。
假设我们有两个页面:MainPage
和 DisplayPage
。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="YourNamespace.MainPage">
<StackLayout>
<Entry x:Name="entryText" Placeholder="Enter text here" />
<Button Text="Go to Display Page" Clicked="OnGoToDisplayPageClicked" />
</StackLayout>
</ContentPage>
using Xamarin.Forms;
namespace YourNamespace
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void OnGoToDisplayPageClicked(object sender, EventArgs e)
{
string text = entryText.Text;
Navigation.PushAsync(new DisplayPage(text));
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="YourNamespace.DisplayPage">
<StackLayout>
<Label x:Name="displayText" Text="" />
</StackLayout>
</ContentPage>
using Xamarin.Forms;
namespace YourNamespace
{
public partial class DisplayPage : ContentPage
{
public DisplayPage(string text)
{
InitializeComponent();
displayText.Text = text;
}
}
}
在你的 App.xaml.cs
中设置导航栈:
using Xamarin.Forms;
namespace YourNamespace
{
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage mainPage = new MainPage();
NavigationPage navigationPage = new NavigationPage(mainPage);
NavigationPage.SetHasNavigationBar(mainPage, true);
MainPage = navigationPage;
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
Entry
控件和一个 Button
控件。OnGoToDisplayPageClicked
方法会被调用,该方法获取 Entry
中的文本并将其传递给 DisplayPage
。Label
控件中。App.xaml.cs
中,创建一个 NavigationPage
并将 MainPage
设置为其根页面。这样可以通过导航栈在不同的页面之间进行导航。这种从一个页面传输文本并在另一个页面显示的应用场景非常常见,例如:
NavigationPage
已正确设置,并且 MainPage
是其根页面。Navigation.PushAsync
方法被正确调用。Entry
和 Label
控件的 x:Name
属性正确设置。DisplayPage
的构造函数中正确设置了 Label
的 Text
属性。通过以上步骤和示例代码,你应该能够在 Xamarin 中实现从一个页面传输文本并在另一个页面显示的功能。
领取专属 10元无门槛券
手把手带您无忧上云