C# 创建新列不需要';t显示正确的项目编号

C# 创建新列不需要';t显示正确的项目编号,c#,wpf,C#,Wpf,我有一个列表(集合),总共有7个项目,我在列表视图中循环创建一个gridview。我还有一个检查,例如,如果行计数为5,这将通过向其中添加1来创建一个新列。问题是,当行计数等于5且为true时,第一列将包含7项,而当创建第二列时,它不显示其余2项。相反,它会再次显示所有7项 谁能帮忙,我做错了什么 foreach (var item in lstOfSoda) { GridLength rowheight1 = new GridLength(); RowDefinition ro

我有一个列表(集合),总共有7个项目,我在列表视图中循环创建一个gridview。我还有一个检查,例如,如果行计数为5,这将通过向其中添加1来创建一个新列。问题是,当行计数等于5且为true时,第一列将包含7项,而当创建第二列时,它不显示其余2项。相反,它会再次显示所有7项

谁能帮忙,我做错了什么

foreach (var item in lstOfSoda)
{
    GridLength rowheight1 = new GridLength();
    RowDefinition rowDef1 = new RowDefinition { Height = rowheight1 };
    grdSoda.RowDefinitions.Add(rowDef1);

    GridLength rowheight2 = new GridLength();
    RowDefinition rowDef2 = new RowDefinition { Height = rowheight2 };
    grdSoda.RowDefinitions.Add(rowDef2);

    GridLength columnwidth1 = new GridLength(231);
    ColumnDefinition colDef1 = new ColumnDefinition { Width = columnwidth1 };
    grdSoda.ColumnDefinitions.Add(colDef1);

    GridLength columnwidth2 = new GridLength(5);
    ColumnDefinition colDef2 = new ColumnDefinition { Width = columnwidth2 };
    grdSoda.ColumnDefinitions.Add(colDef2);

    ListView lvSoda = new ListView();
    lvSoda.SetValue(Grid.RowProperty, row + 1);
    lvSoda.SetValue(Grid.ColumnProperty, column);
    grdSoda.Children.Add(lvSoda);

    GridView gridView = new GridView();

    GridViewColumn gvcSodaName = new GridViewColumn();
    gvcSodaName.DisplayMemberBinding = new Binding("SodaName");
    gridView.Columns.Add(gvcSodaName);

    GridViewColumn gvcSodaFlavor = new GridViewColumn();
    gvcSodaFlavor.DisplayMemberBinding = new Binding("SodaFlavor");
    gridView.Columns.Add(gvcSodaFlavor);

    lvSoda.ItemsSource = lstOfSoda;
    lvSoda.View = gridView;
    rowCount++;

    if (rowCount == 5)
    {
        column = column + 2;
        rowCount = 0;
    }
}

请定义“再次显示所有项目”。@Patrick--它将显示所有7个项目。但您将它们全部绑定到lstOfSoda;你不想在XAML中这样做有什么原因吗?@Patrick——我可以在XAML中这样做,但如果我在xalm中这样做,我如何使它每5行创建一个新列并显示剩余列?