3

我有一个简单Stacklayout的显示按钮。我希望能够让孩子们从stacklayout.

该项目仅用于测试目的,因此每个按钮都链接到同一个事件处理程序。

private void Button_Pressed_1(object sender, EventArgs e)
{
    stack.Children.RemoveAt(stack.Children.Count - 1);
}

一切都很好,直到一个按钮自行移除,然后出现以下不受支持的错误:

未处理的异常:

System.NotSupportedException:无法从本机句柄 0xbfb79bfc (key_handle 0x3e59524) 激活 Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer 类型的实例。

有谁知道如何做到这一点?因为这是nonSupportedException一个简单的 try & catch 并没有完成这项工作

编辑:我让它工作,我将事件处理程序注册到 Pressed-Event。显然这就是问题所在,当使用 Clicke-Event 时一切正常。

4

1 回答 1

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);
        }
    }
}
于 2018-08-10T10:07:23.920 回答