使用C#中的绑定源计算datagridview中的填充行问题

时间:2018-08-25 02:53:34

标签: c# winforms linq lambda

我正在使用Json用BindingSource方法填充DataGridView。随着我的前进,我想知道为什么当根据我的where语句没有选择任何值时,行数为什么仍然为1。请帮助我。

这是我的示例代码:

public void JsonPopulateDGV(string JsonDir, int partsId, string fileName)
    {
        string json = File.ReadAllText(JsonDir);
        var jSectionCollection = JsonConvert.DeserializeObject<JSectionCollection>(json) ?? new JSectionCollection();
        BindingSource src = new BindingSource();
        src.DataSource = jSectionCollection.JSections.Where(x => x.PartsId == partsId).Where(s=>s.FileDir == fileName);

        dataGridSections.DataSource = src;

        Console.WriteLine(src.Count);
    }

1 个答案:

答案 0 :(得分:1)

您需要通过调用WhereToArray来执行ToList。您还可以将两个where语句合并为一个:

src.DataSource = jSectionCollection.JSections
                                .Where(x => x.PartsId == partsId && x.FileDir == fileName)
                                .ToList();