ListViewItem не содержит конструктор, который принимает 1 аргумент - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь заполнить listView элементами из базы данных доступа. Я могу выполнить это в форме windows, но я пытаюсь сделать это в WPF. Я получаю сообщение об ошибке в моей функции заполнения. Строка 'ListViewItem item = new ListViewItem (row);' где я вижу ошибку. Любая помощь очень ценится. Заранее спасибо!

        private void populate(String id, String emp, String basket, String recipe, String time, String pos1, String pos2, String pos3, String pos4, String pos5,
                          String pos6, String pos7, String pos8, String pos9, String pos10, String pos11, String pos12, String pos13, String pos14, String pos15, String pos16,
                          String pos17, String pos18, String pos19, String pos20, String pos21, String pos22, String pos23, String pos24, String pos25)
    {

        // Row           
            String[] row = { id.ToString(), emp.ToString(), basket.ToString(), recipe.ToString(), time.ToString(), pos1.ToString(), pos2.ToString(), pos3.ToString(), pos4.ToString(), pos5.ToString(), pos6.ToString(), pos7.ToString(), pos8.ToString(), pos9.ToString(), pos10.ToString(), pos11.ToString(), pos12.ToString(), pos13.ToString(), pos14.ToString(), pos15.ToString(), pos16.ToString(), pos17.ToString(), pos18.ToString(),
                         pos19.ToString(), pos20.ToString(), pos21.ToString(), pos22.ToString(), pos23.ToString(), pos24.ToString(), pos25.ToString() };

            ListViewItem item = new ListViewItem(row);
            listView.Items.Add(row);


    }


    // Retrieve 
    private void retrieve()
    {
        listView.Items.Clear();

        //Sql statement
        String sql = "Select * FROM Cleaner_Log";
        cmd = new OleDbCommand(sql, con);

        //Open connection, retrieve, and fill listview1
        try
        {
            con.Open();
            adapter = new OleDbDataAdapter(cmd);

            adapter.Fill(dt);

            //Loop thru dt
            foreach (DataRow row in dt.Rows)
            {
                populate(row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString(), row[5].ToString(), row[6].ToString(), row[7].ToString(), row[8].ToString(),
                         row[9].ToString(), row[10].ToString(), row[11].ToString(), row[12].ToString(), row[13].ToString(), row[14].ToString(), row[15].ToString(), row[16].ToString(), row[17].ToString(),
                         row[18].ToString(), row[19].ToString(), row[20].ToString(), row[21].ToString(), row[22].ToString(), row[23].ToString(), row[24].ToString(), row[25].ToString(), row[26].ToString(),
                         row[27].ToString(), row[28].ToString(), row[29].ToString());
            }

            con.Close();

            //Clear datatable
            dt.Rows.Clear();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            con.Close();
        }
    }

1 Ответ

1 голос
/ 31 января 2020

Конструктор класса ListView является конструктором по умолчанию, и поэтому вы не можете передавать никакие аргументы

CodeBehind

Порядок вызова метода

public static System.Windows.Controls.ListView lv;
public static GridView gridView;
public MainWindow()
{
    InitializeComponent();
    SetupListView();//To Initializes List and its properties 
    SetupListViewHeaders();//adds Column headers
    Final();//Adding listview to Children for display
}

Определение метода (ов)

private void SetupListView()
{
 lv = new System.Windows.Controls.ListView();            
 lv.Margin = new Thickness(10, 15, 0, 0);
 lv.Height = 500;
 lv.Width = 700;         
 gridView = new GridView();
 lv.View = gridView;           
}

private void SetupListViewHeaders()
{
    gridView.Columns.Add(new GridViewColumn
    {
                    Header = "Id",
                    DisplayMemberBinding = new Binding("Id")
    });
    gridView.Columns.Add(new GridViewColumn
    {
        Header = "Emp",
        DisplayMemberBinding = new Binding("Emp")
    });
    gridView.Columns.Add(new GridViewColumn
    {
        Header = "Basket",
        DisplayMemberBinding = new Binding("Basket")
    });
    gridView.Columns.Add(new GridViewColumn
    {
        Header = "Recipe",
        DisplayMemberBinding = new Binding("Recipe")
    });
    gridView.Columns.Add(new GridViewColumn
    {
        Header = "Time",
        DisplayMemberBinding = new Binding("Time")
    });

    for (int i = 1; i <= 25; i++)
    {
        gridView.Columns.Add(new GridViewColumn
        {
            Header = "Pos" + i.ToString(),
            DisplayMemberBinding = new Binding("Pos" + i.ToString())
        });
    }
}



private void Populate(String id, String emp, String basket, String recipe, String time, String pos1, String pos2, String pos3, String pos4, String pos5,
                             String pos6, String pos7, String pos8, String pos9, String pos10, String pos11, String pos12, String pos13, String pos14, String pos15, String pos16,
                             String pos17, String pos18, String pos19, String pos20, String pos21, String pos22, String pos23, String pos24, String pos25)
{ 

    lv.Items.Add(
    new
    {
        Id = 1, Emp = "David", Basket = basket, Recipe = recipe,
        Time = time, Pos1=pos1, Pos2=pos2, Pos3=pos3, Pos4=pos4, Pos5=pos5, Pos6=pos6, Pos7=pos7,Pos8=pos8,
        Pos9=pos9, Pos10=pos10, Pos11=pos11, Pos12=pos12, Pos13=pos13, Pos14=pos14, Pos15=pos15, Pos16=pos16,Pos17=pos17, Pos18=pos18,
        Pos19=pos19, Pos20=pos20, Pos21=pos21, Pos22=pos22, Pos23=pos23, Pos24=pos24, Pos25=pos25


    });


}      


    private void Final()
    {
        MainGrid.Children.Add(lv);
    }


Выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...