C# 导航回页面后无法删除控件(Win 8应用程序)

C# 导航回页面后无法删除控件(Win 8应用程序),c#,xaml,listview,controls,C#,Xaml,Listview,Controls,我有一个平板电脑应用程序(windows 8应用程序),带有起始主页.xaml。在那里,我将ListView绑定到一个ObservableCollection,UpdateSourceTrigger设置为PropertyChanged。。。在这个列表中,我动态创建面板(带有删除按钮)。当我创建按钮,然后单击删除按钮时,一切正常。。面板以漂亮的动画消失。但是,当我创建新面板时。。然后我导航到另一个页面并返回主页,单击“删除”以删除它们不消失的任何面板。。但如果再次导航到另一个页面,然后我返回。面板

我有一个平板电脑应用程序(windows 8应用程序),带有起始主页.xaml。在那里,我将ListView绑定到一个ObservableCollection,UpdateSourceTrigger设置为PropertyChanged。。。在这个列表中,我动态创建面板(带有删除按钮)。当我创建按钮,然后单击删除按钮时,一切正常。。面板以漂亮的动画消失。但是,当我创建新面板时。。然后我导航到另一个页面并返回主页,单击“删除”以删除它们不消失的任何面板。。但如果再次导航到另一个页面,然后我返回。面板已卸下。我试着调试这个集合,一切看起来都很好。尝试将UpdateSourceTrigger更改为Explicit并手动调用,但未成功。谢谢你的帮助

HomePage.Xaml中的ListView Xaml

<ListView x:Name="CListView" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="40, 0, 50, 50"
                  SelectionMode="None" IsItemClickEnabled="True" ItemClick="CListView_OnItemClick"
                  ScrollViewer.HorizontalScrollBarVisibility="Auto"
                  ScrollViewer.VerticalScrollBarVisibility="Disabled"
                  ScrollViewer.HorizontalScrollMode="Auto"
                  ScrollViewer.VerticalScrollMode="Disabled"
                  ScrollViewer.ZoomMode="Disabled"
                  ScrollViewer.IsHorizontalScrollChainingEnabled="True"
                  ItemsSource="{Binding Path=ClControls, ElementName=HomePageElementName, UpdateSourceTrigger=PropertyChanged}">
        <ListView.ItemContainerStyle>

HomePage.xaml.cs 记忆

 public ObservableCollection<IClControl> ClControls
    {
        get { return _clEvents; }
        set
        {
            _clEvents = value;
            OnPropertyChanged();
        }
    }

 private async void ClControl_OnItemRemove(object sender, ClControlRemoveItemArgs e)
    {
        var control = sender as ClControl;
        if (control == null)
            return;

        var clEvent = e.ClEventInfo;

       // control.OnItemRemove -= ClControl_OnItemRemove;
        if (ClControls.Contains(control))
        {
            ClControls.Remove(control);
        }
        if (SessionHolder.Instance.ClControls.Contains(control))
        {
            SessionHolder.Instance.ClControls.Remove(control);
        }

        await clEvent.Delete();


        }
公共可观测采集控制
{
获取{return\u clEvents;}
设置
{
_聪明=价值;
OnPropertyChanged();
}
}
私有异步void ClControl\u OnItemRemove(对象发送方,clcontrolremovietemargs e)
{
var control=发送方作为ClControl;
if(control==null)
返回;
var clEvent=e.Cleventifo;
//control.OnItemRemove-=ClControl\u OnItemRemove;
if(ClControls.Contains(control))
{
ClControls。移除(控制);
}
if(SessionHolder.Instance.ClControls.Contains(控件))
{
SessionHolder.Instance.ClControls.Remove(控件);
}
wait clEvent.Delete();
}