Если я создаю новое кроссплатформенное приложение и добавляю кнопку к макету по умолчанию и добавляю событие щелчка, тогда все ведет себя как ожидалось. Если я изменю макет и добавлю другие элементы в приложение, события не будут запущены. Я тестирую на подключенном устройстве, но также пробовал это на эмуляторе.
Это работает:
<StackLayout>
<!-- Place new controls here -->
<Button x:Name="Testbtn" Text="Click Me" />
<Label Text="Welcome to Xamarin.Forms!"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
</StackLayout>
public MainPage()
{
InitializeComponent();
Testbtn.Clicked += OnClicked;
}
async void OnClicked(object sender, EventArgs e)
{
var btn = sender as Button;
await DisplayAlert("Test", String.Format("Clicked !! {0}", btn.Text), "OK");
}
При изменении макета приложение перестраивается, но событияне стреляйте ...
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="3.333" />
<RowDefinition Height="3.333" />
<RowDefinition Height="3.333" />
</Grid.RowDefinitions>
<StackLayout Grid.Row="2" >
<Button x:Name="btnTest" Text="Click Me" />
<Button x:Name="btnTest1" Text="And Another" />
</StackLayout>
</Grid>
public MainPage()
{
InitializeComponent();
Testbtn.Clicked += OnClicked;
Testbtn1.Clicked += OnClicked;
}
async void OnClicked(object sender, EventArgs e)
{
var btn = sender as Button;
await DisplayAlert("Test", String.Format("Clicked !! {0}", btn.Text), "OK");
}