我有一个简单的map.toString().replace(",","&")
,其中显示了Button。
我希望能够让孩子将自己从Stacklayout
中移除。
该项目仅用于测试目的,因此每个按钮都链接到相同的事件处理程序。
stacklayout
一切正常,直到一个按钮将其移除,然后出现以下不受支持的错误:
未处理的异常:
System.NotSupportedException:无法激活类型的实例 来自本机的Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer 句柄0xbfb79bfc(key_handle 0x3e59524)。
有人知道如何实现这一目标吗?由于它是private void Button_Pressed_1(object sender, EventArgs e)
{
stack.Children.RemoveAt(stack.Children.Count - 1);
}
,因此简单的try&catch不能完成工作
编辑: 我成功了,我将事件处理程序注册到Pressed-Event。显然这就是问题所在,使用Clicke-Event时一切正常。
答案 0 :(得分:1)
您使用的Xamarin是什么版本?我尝试使用Xamarin.Form 3.0.0.561731,它运行良好。 请检查我的代码如下:
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"
xmlns:local="clr-namespace:RemoveItSelf"
x:Class="RemoveItSelf.MainPage">
<StackLayout x:Name="stack">
<!-- Place new controls here -->
<Label Text="Welcome to Xamarin.Forms!"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
<Label Text="Welcome to Xamarin.Forms!"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
<Button Text="Remove" Clicked="PressMeButton_Clicked"></Button>
</StackLayout>
</ContentPage>
Xaml.cs页面:
namespace RemoveItSelf
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void PressMeButton_Clicked(object sender, EventArgs e)
{
//stack.Children.RemoveAt(0);
stack.Children.RemoveAt(stack.Children.Count - 1);
}
}
}