C# 如何从ObservableCollection中删除所有选定项

C# 如何从ObservableCollection中删除所有选定项,c#,listview,windows-phone-8.1,windows-phone,observablecollection,C#,Listview,Windows Phone 8.1,Windows Phone,Observablecollection,我试图从ObservaleCollection中删除所有选中的项。当单击不同XAML中的按钮时,我不确定如何在我的系统中实现它。我用这个例子来指导我- 下面是我的代码: Basket.xaml,其中包含可观察到的集合 private static ObservableCollection<Menu.PassedData> passedData = new ObservableCollection<Menu.PassedData>(); public Observa

我试图从ObservaleCollection中删除所有选中的项。当单击不同XAML中的按钮时,我不确定如何在我的系统中实现它。我用这个例子来指导我-

下面是我的代码:

Basket.xaml,其中包含可观察到的集合

private static ObservableCollection<Menu.PassedData> passedData = new ObservableCollection<Menu.PassedData>();
    public ObservableCollection<Menu.PassedData> PassedData
    {

        get { return passedData; }
        //get{ passedData = value; }

    bool IsSelected = true;
    }
菜单。传递数据

       public event SelectionChangedEventHandler SelectionChanged;
    public class PassedData
    {
        public string Name { get; set; }
        public double Value { get; set;}

        bool IsSelected = true;

        internal static void RemoveAll(Func<object, bool> p)
        {
            throw new NotImplementedException();
        }
    }
公共事件选择更改手持设备选择更改;
公共类传递数据
{
公共字符串名称{get;set;}
公共双值{get;set;}
bool-IsSelected=true;
内部静态空洞清除(功能p)
{
抛出新的NotImplementedException();
}
}
错误

您的Remove语句
c.Remove(x=>x.c)
没有提供您在扩展中定义的lambda表达式。你应该写一些类似的东西

c.Remove(x => x.c == trueStatement)

菜单中应该有一个名为
IsSelected
的布尔属性。 使用
SelectionChangedEvent

private void SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            foreach (var item in e.AddedItems)
            {

                (item as Menu.Passed).Selected=true
            }
        }
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
        {

         PassedData.RemoveAll(data => data.IsSelected == true);

         }





        public class PassedData
        {
            public string Name { get; set; }
            public double Value { get; set;}

            public bool IsSelected{get;set;}


        }

错误发生在哪里?如果选择了Menu.PassedData类,则应该在该类中存储bool属性。这将很容易。您可以在事件处理程序中循环项目,检查所选属性。如果为真,请删除您是如何使项目处于选中状态的?谢谢您的回答,我应该在Basket.xaml.cs中的哪个位置设置布尔属性?它应该在公共可观察集合中吗?它应该在菜单中。通过了类哦,我真的没有一个可观察集合的类。如果我在Public之后输入类,它会给出一个错误:预期'>',我已经用代码的当前状态更新了问题。那么什么是Menu.Passed?集合项的类型是什么?
       public event SelectionChangedEventHandler SelectionChanged;
    public class PassedData
    {
        public string Name { get; set; }
        public double Value { get; set;}

        bool IsSelected = true;

        internal static void RemoveAll(Func<object, bool> p)
        {
            throw new NotImplementedException();
        }
    }
c.Remove(x => x.c == trueStatement)
private void SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            foreach (var item in e.AddedItems)
            {

                (item as Menu.Passed).Selected=true
            }
        }
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
        {

         PassedData.RemoveAll(data => data.IsSelected == true);

         }





        public class PassedData
        {
            public string Name { get; set; }
            public double Value { get; set;}

            public bool IsSelected{get;set;}


        }