我有一个“AddNote”页和一个“HomePage”页。我想在“AddNote”页中单击“TakeNoteBtn”按钮时在“HomePage”页上创建一个网格。如何操作?
XAML button code in AddNote page;
<Button
CornerRadius="30"
Text="Take Note"
x:Name="TakeNoteBtn"
Margin="20, 30, 20, 0"
Clicked="TakeNoteBtn_Clicked"
BackgroundColor="FloralWhite"/>
AddNote page c#;
private void TakeNoteBtn_Clicked(object sender, EventArgs e)
{
//Create grid
}
public Grid CreateGrid(string header, string note)
{
Label headerLabel = new Label();
Label noteLabel = new Label();
headerLabel.Text = header;
noteLabel.Text = note;
Grid noteGrid = new Grid();
noteGrid.Children.Add(headerLabel);
noteGrid.Children.Add(noteLabel);
noteGrid.WidthRequest = 50;
noteGrid.HeightRequest = 50;
noteGrid.BackgroundColor = Color.Red;
return noteGrid;
}
HomePage page xaml;
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
FlowDirection="LeftToRight"
x:Class="ArduinoNotes.HomePage"
BackgroundImageSource="background.png"
IconImageSource="logo.png"
Title="Arduino Notes">
<ContentPage.Content>
<RelativeLayout x:Name="HomePageGridZone">
</RelativeLayout>
</ContentPage.Content>
</ContentPage>
我尝试了ArduinoNotes.HomePage.HomePageGridZone.Add(CreateGrid(noteHeader,noteBody));但不起作用。
1条答案
按热度按时间jhdbpxl91#
是的,您可以使用
MessageCenter
来实现此目的。如果你想用
MessageCenter
实现这个.可以参考下面的代码:1.在
AddNotePage.xaml
页上添加按钮(Take Note with messagecenter
)以及
AddNotePage.xaml.cs
上的函数TakeNoteBtn_Clicked_withMessageCenter
2.在
HomePage
上,在HomePage
的构造方法上订阅消息,页面收到消息后,可以在此页面添加网格public partial class:public String getString();
此外,您还可以使用
EventHandler
来实现这一点。而我已经实现了这个功能,可以参考下面的代码:
假设
HomePage
是主页面,我们可以单击HomePage
上的按钮导航到AddNotePage
。(add note
),我们可以传递两个参数(note Header
和note content
)到HomePage
。在这里,我们可以通过使用HomePage
上的两个传递参数note Header
和note content
来创建Grid。主页.xaml
首页.xaml.cs
AddNotePage.xaml
AddNotePage.xaml.cs
NoteModel.cs