//在ListView中增加一行
        private void button9_Click(object sender, RoutedEventArgs e)
        {
            //int selectIndex = lv.SelectedIndex; 
            ICollectionView view = (ICollectionView)CollectionViewSource.GetDefaultView(lv.ItemsSource);
            List<Setting> items = new List<Setting>();
            items = (List<Setting>)view.SourceCollection;
            items.Add(new Setting("", false, "", "", "")); //Setting类用来增加ListView中的一行
            lv.Items.Refresh();
        }
为什么我每次点击button9后,能够增加一行,但是之前每行ComboBox控件选择的项数据都被清除了?

解决方案 »

  1.   

    ICollectionView view = (ICollectionView)CollectionViewSource.GetDefaultVie(lv.ItemsSource);
                List<Setting> items = new List<Setting>();
                items = (List<Setting>)view.SourceCollection;
     private void button9_Click(object sender, RoutedEventArgs e)
            {
              items.Add(new Setting("", false, "", "", "")); //Setting类用来增加ListView中的一行
                lv.Items.Refresh();
            }
      

  2.   

    //在ListView中增加一行
            private void button9_Click(object sender, RoutedEventArgs e)
            {
                //int selectIndex = lv.SelectedIndex; 
                ICollectionView view = (ICollectionView)CollectionViewSource.GetDefaultView(lv.ItemsSource);
                List<Setting> items = new List<Setting>();
                items = (List<Setting>)view.SourceCollection;
                items.Add(new Setting("", false, "", "", "")); //Setting类用来增加ListView中的一行,我单步调试到这里items项内的ComboBox的值是我赋的值,但是执行下面一步刷新时,界面的值没有了,但是items的值是对的。
                lv.Items.Refresh();
            }求高手帮忙看下啊,是不是刷新的lv界面,但是我的值是赋给items了?这个怎么解决?
      

  3.   

    貌似是 lv.Items.Refresh(); 引起的,在 Refresh 前应保存下现有的数据试试
      

  4.   

    通常是绑定的数据源应使用带有 System.Collections.Specialized.INotifyCollectionChanged 接口
    最典型的是 ObservableCollection<(Of <(T>)>)如果你绑定的是 DataContext 或 ObjectContext
    可以参考: ObservableCollection + ReadOnlyObservableCollection + ExecuteDynamicInsert