gpt4 book ai didi

c# - 将 ObservableCollection 绑定(bind)到 DataGridView

转载 作者:太空狗 更新时间:2023-10-30 00:43:12 27 4
gpt4 key购买 nike

我正在将一个可观察集合 (FoodList) 绑定(bind)到我的 WinForm 中的 BindingSource。此 BindingSource 由窗体上的数据网格使用。我曾假设,当我向集合中添加一个新项目时,它会引发一个事件,并且新行会出现在我的网格中。但这并没有发生。

namespace Foods
{
public class FoodList : ObservableCollection<Food>
{

}
}

private void frmFoods_Load(object sender, EventArgs e)
{
try
{
foodSource = new Source("Foods.xml");
foodBindingSource.DataSource = foodSource.Foods;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void AddFood()
{
using (frmFood frm = new frmFood())
{
frm.ShowDialog(this);
if (!frm.Canceled)
{
foodSource.Foods.Add(frm.Food); // <-- No new row.
//foodBindingSource.ResetBindings(false);
foodDataGridView.ClearSelection();
foodDataGridView.CurrentCell = foodDataGridView[0, foodDataGridView.Rows.Count - 1];
foodDataGridView.Focus();
}
}
}

最佳答案

ObservableCollection<T>不适用于 WinForms 控件。

但是 BindingList<T> 将按您期望的方式工作。

关于c# - 将 ObservableCollection 绑定(bind)到 DataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12015576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com