XAML 如何使用MAUI .Net删除任何控件?

xoshrz7s  于 2022-12-07  发布在  .NET
关注(0)|答案(2)|浏览(200)

我是MAUI新手,在网页上找不到任何解决方案,我只想删除任何控件或组件。组件可以是列表视图、按钮或任何东西。
例如我下面的代码:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="MauiApp2.Prueba"
         Title="Prueba">
<StackLayout VerticalOptions="Center">

    <ListView x:Name="FruitListView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextCell Text="{Binding FruitName}" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

    <Button x:Name="btnDelete"
        Text="Random Color"
        HorizontalOptions="Center" 
        VerticalOptions="Center" 
        Clicked="btnDelete_Clicked" />

</StackLayout>

单击btnDelete按钮时,如何删除整个<ListView>
我有这个:

private void btnDelete_Clicked(object sender, EventArgs e)
{
    FruitListView. ;
}

我找不到任何删除此ListView组件的参考,是否可以通过后端代码删除?

8e2ybdfx

8e2ybdfx1#

您可以像这样从控件的父布局中移除控件

MyStackLayout.Children.Remove(FruitListView);

您需要将x:Name分配给父布局,以便在后面的代码中引用它

ykejflvf

ykejflvf2#

我不认为您可以在运行时删除一个控件如果它在编译时在原始XAML中开始其生命。WPF在编译期间以自定义代码生成的方式做了很多事情,MAUI也没有什么不同。
更好的方法是将ListView从编译时添加到窗口改为***运行时添加到窗口***。
换句话说就是:
1.从XAML文件中删除<ListView>和相关项
1.在页面的代码隐藏C# .CS文件中,创建一个ListView对象并将其添加到StackLayout对象中。将ListView对象保存到类似ListView _myListView的字段中
1.以后你可以只StackLayout.Remove(_myListView)

相关问题