我创建了一个绑定列表BindingList<RunData>
并将其传递给CustomMessageBox.Show()
,但DataGridView
不会显示列表元素。
public partial class CustomMessageBox : Form
{
#region Fields.
private static CustomMessageBox customMessageBox;
private static String selectedDateTime;
#endregion
#region Properties.
internal String SelectedDateTime
{ get { return CustomMessageBox.selectedDateTime; } }
#endregion
#region Constructors.
private CustomMessageBox()
{
InitializeComponent();
}
#endregion
#region Methods.
internal static DialogResult Show(BindingList<RunData> dataGridViewData)
{
CustomMessageBox.customMessageBox = new CustomMessageBox();
CustomMessageBox.customMessageBox.dataGridViewRunData.AutoGenerateColumns = true;
CustomMessageBox.customMessageBox.dataGridViewRunData.DataSource = dataGridViewData;
return CustomMessageBox.customMessageBox.ShowDialog();
}
#endregion
}
internal class RunData
{
#region Fields.
private String dateTime;
private String name;
private String product;
private String result;
#endregion
#region Properties.
internal String DateTime
{ get { return this.dateTime; } }
internal String Name
{ get { return this.name; } }
internal String Product
{ get { return this.product; } }
internal String Result
{ get { return this.result; } }
#endregion
#region Constructors.
internal RunData(String dateTime, String name, String product, String result)
{
this.dateTime = dateTime;
this.name = name;
this.product = product;
this.result = result;
}
#endregion
}
我之前从未使用过BindingList
但是从我在网上找到的例子看来我做的一切都还可以。任何帮助将不胜感激。
谢谢!
修改
如果有任何不同,我正在使用.NET 2.0。
答案 0 :(得分:5)
在我的测试中,我发现模型类(即RunData)和/或属性应该是Public而不是内部的。
我创建了一个示例类,并对网格进行了相同的设置。内部属性和类失败了。一旦我公开它就没事了。
public class RunData
{
#region Fields.
private String dateTime;
private String name;
private String product;
private String result;
#endregion
#region Properties.
public String DateTime
{ get { return this.dateTime; } }
public String Name
{ get { return this.name; } }
public String Product
{ get { return this.product; } }
public String Result
{ get { return this.result; } }
#endregion
#region Constructors.
public RunData(String dateTime, String name, String product, String result)
{
this.dateTime = dateTime;
this.name = name;
this.product = product;
this.result = result;
}
#endregion
}