C# 为什么我的列表不能显示在DataGridView中

C# 为什么我的列表不能显示在DataGridView中,c#,winforms,datagridview,C#,Winforms,Datagridview,我不明白为什么我的列表不会显示在DataGridView中。如果我删除dataGridView1.DataSource=actors.ToList()的注释;它运行。。。但我需要它在我按下按钮时运行。有什么不对劲吗 public partial class Form1 : Form { public Form1() { InitializeComponent(); LoadData(); } public void LoadDa

我不明白为什么我的列表不会显示在DataGridView中。如果我删除dataGridView1.DataSource=actors.ToList()的注释;它运行。。。但我需要它在我按下按钮时运行。有什么不对劲吗

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        LoadData();
    }


    public void LoadData()
    {
        List<Actor> actors = new List<Actor>
    {
        new Actor(){ PersonId = 1, ForNavn = "xxxx", EtterNavn = "bbbbb", Adresse = "Hhhhhh", PostNr = 37325, PostSted = "aaaa" },
        new Actor(){ PersonId = 2, ForNavn = "ggggg", EtterNavn = "ddddd", Adresse = "Dssssss", PostNr = 37464, PostSted = "ssfff"  },
    };
        //dataGridView1.DataSource = actors.ToList();
    }


    private void btnSok_Click(object sender, EventArgs e)
    {
        List<Actor> actors = new List<Actor>();

        var query = from actor in actors
                    select actor;

        dataGridView1.DataSource = query.ToList();

    }
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
LoadData();
}
公共void LoadData()
{
列表参与者=新列表
{
新演员(){PersonId=1,ForNavn=“xxxx”,EtterNavn=“bbbbb”,Adresse=“hhhhh”,PostNr=37325,PostSted=“aaaa”},
新参与者(){PersonId=2,ForNavn=“ggggg”,EtterNavn=“ddddd”,Adresse=“dsssss”,PostNr=37464,PostSted=“ssfff”},
};
//dataGridView1.DataSource=actors.ToList();
}
私有无效btnSok_单击(对象发送方,事件参数e)
{
列表参与者=新列表();
var query=来自actors中的actor
选择演员;
dataGridView1.DataSource=query.ToList();
}
}

}

因为按钮单击事件中的参与者列表为空

改用这个:

 List<Actor> actors = new List<Actor>
    {
        new Actor(){ PersonId = 1, ForNavn = "xxxx", EtterNavn = "bbbbb", Adresse = "Hhhhhh", PostNr = 37325, PostSted = "aaaa" },
        new Actor(){ PersonId = 2, ForNavn = "ggggg", EtterNavn = "ddddd", Adresse = "Dssssss", PostNr = 37464, PostSted = "ssfff"  },
    };
List actors=新列表
{
新演员(){PersonId=1,ForNavn=“xxxx”,EtterNavn=“bbbbb”,Adresse=“hhhhh”,PostNr=37325,PostSted=“aaaa”},
新参与者(){PersonId=2,ForNavn=“ggggg”,EtterNavn=“ddddd”,Adresse=“dsssss”,PostNr=37464,PostSted=“ssfff”},
};

因为按钮单击事件中的参与者列表为空

改用这个:

 List<Actor> actors = new List<Actor>
    {
        new Actor(){ PersonId = 1, ForNavn = "xxxx", EtterNavn = "bbbbb", Adresse = "Hhhhhh", PostNr = 37325, PostSted = "aaaa" },
        new Actor(){ PersonId = 2, ForNavn = "ggggg", EtterNavn = "ddddd", Adresse = "Dssssss", PostNr = 37464, PostSted = "ssfff"  },
    };
List actors=新列表
{
新演员(){PersonId=1,ForNavn=“xxxx”,EtterNavn=“bbbbb”,Adresse=“hhhhh”,PostNr=37325,PostSted=“aaaa”},
新参与者(){PersonId=2,ForNavn=“ggggg”,EtterNavn=“ddddd”,Adresse=“dsssss”,PostNr=37464,PostSted=“ssfff”},
};
公共部分类表单1:表单
{
私人演员名单;
公共表格1()
{
初始化组件();
LoadData();
}
公共void LoadData()
{
_演员=新名单
{
新演员(){PersonId=1,ForNavn=“xxxx”,EtterNavn=“bbbbb”,Adresse=“hhhhh”,PostNr=37325,PostSted=“aaaa”},
新参与者(){PersonId=2,ForNavn=“ggggg”,EtterNavn=“ddddd”,Adresse=“dsssss”,PostNr=37464,PostSted=“ssfff”},
};
}
私有无效btnSok_单击(对象发送方,事件参数e)
{
var query=来自_actors中的actor
选择演员;
dataGridView1.DataSource=query.ToList();
}
}
btnsOK中的参与者再次声明,未加载,因此有点空白。

公共部分类Form1:Form
{
私人演员名单;
公共表格1()
{
初始化组件();
LoadData();
}
公共void LoadData()
{
_演员=新名单
{
新演员(){PersonId=1,ForNavn=“xxxx”,EtterNavn=“bbbbb”,Adresse=“hhhhh”,PostNr=37325,PostSted=“aaaa”},
新参与者(){PersonId=2,ForNavn=“ggggg”,EtterNavn=“ddddd”,Adresse=“dsssss”,PostNr=37464,PostSted=“ssfff”},
};
}
私有无效btnSok_单击(对象发送方,事件参数e)
{
var query=来自_actors中的actor
选择演员;
dataGridView1.DataSource=query.ToList();
}
}

btnsOK中的参与者再次声明,未加载,因此有点空白。

参与者列表为空,您没有像在LoadData中那样向其中添加任何元素。最好使用数据绑定。参与者列表为空,您没有像在LoadData中那样向其添加任何元素。最好使用数据绑定。我应该编写什么来代替List actors=new List();在btn\u中单击“然后?”?因为如果我删除它,它会显示未分配的局部变量actors。要么在按钮单击事件中加载数据,要么使用Tony Hopkinson的回答我应该写什么而不是List actors=new List();在btn\u中单击“然后?”?因为如果我删除它,它会显示未分配的局部变量actors。要么在按钮单击事件中加载数据,要么使用Tony Hopkinson的答案