[英]How to call method in child xaml from parent in Xamarin Forms ?
我需要在另一個中執行一個xaml的繼承,並觸發來自child的調用。 兒童xaml:
<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="project.NavigationBar">
<ContentView.Content>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackLayout
Orientation="Horizontal"
Grid.Column="0"
HorizontalOptions="CenterAndExpand"
VerticalOptions="End">
<Button
x:Name="NavigationBarButton"
Clicked="NavigationBarButton_Clicked"
Text="Gallery">
</Button>
</StackLayout>
</Grid>
</ContentView.Content>
</ContentView>
兒童xaml.cs:
private void NavigationBarButton_Clicked(object sender, EventArgs e)
{
}
父xaml:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="project.main"
xmlns:views="project.NavigationBar"
>
<StackLayout>
<views:NavigationBar/>
</StackLayout>
</ContentPage>
父xaml.cs:
private void NavigationBarButton_Clicked(object sender, EventArgs e)
{
Get call from child there and do my logic
}
我怎么能在孩子中觸發點擊通話並將其投入父母?
首先在CustomView中創建一個EventHandler:
public event EventHandler myClickEvent;
然后,添加將被調用的函數(仍在您的customView中:
void myClickEvent(object sender, EventArgs e)
{
myClickEvent?.Invoke(sender, e);
}
在您的頁面中,將方法綁定到您將被調用的視圖:
<views:NavigationBar myClickEvent="MyClickEvent"/>
在您的page.xaml.cs中:
void MyClickEvent(object sender, EventArgs e)
{
//handle method here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.