首页 > 解决方案 > 从 ListViewItem 单击 UWP 按钮

问题描述

我真的希望有更多经验的人能给我一些指点。

我对 UWP 项目进行了以下设置:

这个想法是单击一个项目以选择它,但是当我单击项目内的按钮时,我希望删除该项目。

我有哪些选择?

标签: c#xamluwpuser-controls

解决方案


如果看起来是在不使用视图模型的情况下执行此操作,那么您可以向 TubeTemplate 控件添加一个事件。

 public event EventHandler Closed;

单击关闭按钮时,您将触发该事件。

private void RemoveTube_Click(object sender, RoutedEventArgs e)
{
    Closed?.Invoke(this, EventArgs.Empty); // Even better would be to give the item clicked (the data context)
}

然后,您可以在 MainPage 中订阅该事件。

<local:TubeTemplate HorizontalAlignment="Stretch" 
                    VerticalAlignment="Stretch" 
                    Closed="TubeTemplate_Closed">

</local:TubeTemplate>

在该TubeTemplate_Closed方法中,您可以删除单击的项目。

private void TubeTemplate_Closed(object sender, EventArgs e)
{
    var element = (FrameworkElement)sender;
    var tube = (Tube)element.DataContext;

    TubeItems.Remove(tube);
}

推荐阅读