Я считаю, что трудно удерживать фокус ввода при нажатии кнопки.
Я пишу WorkAroud для вас, когда запись Unfocused
, используйте previousEntry
для записи этой записи:
public partial class MainPage : ContentPage
{
public Entry previousEntry;
public MainPage()
{
InitializeComponent();
first.Unfocused += (object sender, FocusEventArgs e) => {
previousEntry = (Entry)sender;
};
second.Unfocused += (object sender, FocusEventArgs e) => {
previousEntry = (Entry)sender;
};
third.Unfocused += (object sender, FocusEventArgs e) => {
previousEntry = (Entry)sender;
};
}
private void Button_Clicked(object sender, EventArgs e)
{
Button button = (Button)sender;
string pressed = button.Text;
if (previousEntry != null)
{
previousEntry.Text += pressed;
}
}
}
И в Xaml :
<StackLayout>
<!-- Place new controls here -->
<Button Text="click me" Clicked="Button_Clicked" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
<Entry x:Name="first" Text="1+" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
<Entry x:Name="second" Text="2+" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
<Entry x:Name="third" Text="3+" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
</StackLayout>
Дайте мне знать, если это работает.