из dataGridView в ListView - PullRequest
       30

из dataGridView в ListView

0 голосов
/ 07 августа 2020

Мои данные загружаются в dataGridView

Мне нужно отфильтровать dataGridView и отдельные данные, а затем поместить некоторые из них в представление списка

Я пытался это сделать, но при добавлении получаю сообщение об ошибке в список

не уверены, что я использую правильный подход?

Вот мой код

    var lstPts2 = grdSearch.Rows.Cast<DataGridViewRow>()
                   .Where(x => !x.IsNewRow)                   
                   .Where(x => x.Cells["PtsCode"].Value != null) 
                   .Select(x => (x.Cells["PtsCode"].Value.ToString() , x.Cells["PtsName"].Value.ToString() , x.Cells["DOB"].Value.ToString()))
                   .Distinct()
                   .ToList();
    lbxPts.DataSource = lstPts2;


    listView1.Items.Add(lstPts2);  // <----- Getting Error HERE

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Я бы создал DataTable для ваших данных в DataGridView. Затем вы можете создать BindingSource для доступа к данным для ваших DataGridView и ListView. Если ваши данные обновлены, BindingSource будет автоматически обновлять каждый элемент новыми данными.

Здесь вы можете найти BindingSource: https://docs.microsoft.com/de-de/dotnet/api/system.windows.forms.bindingsource?view=netcore-3.1

короткий пример:

        public static DataTable Ignorieren = GetTable();
        
        static DataTable GetTable()
                {
                    DataTable Ignorieren = new DataTable();
                    Ignorieren.Columns.Add("Date", typeof(DateTime));
                    Ignorieren.Columns.Add("text", typeof(string));
                    
                    return Ignorieren;
                }



//use it in your method
     BindingSource dataSource = new BindingSource();
                dataSource.DataSource = Ignorieren;
    
                DataGridView Table2 = new DataGridView();
                Table2.DataSource = dataSource;
    
                ListView List1 = new ListView();
                List1.DataBindings.Add("Date", dataSource, "Date", true);
0 голосов
/ 07 августа 2020

Думаю, вам следует обновить список

List<string> l = new List<string>();
l.Add("A");
InitializeComponent();
listView1.ItemsSource = l;
l.Add("B");

listView1.Items имеет только свойство Get.

...