Reputation: 4423
I create a binding list BindingList<RunData>
and pass it through CustomMessageBox.Show()
but the DataGridView
doesn't display the list elements.
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
}
I have never used BindingList
before but from the examples I found online it looks like I did everything OK. Any help would be appreciated.
Thanks!
EDIT
I'm using .NET 2.0 if that makes any difference.
Upvotes: 1
Views: 2505
Reputation: 1248
In my testing I have found that the model class (i.e. RunData) and or properties should be Public not internal.
I created a sample class and did the same setup you have with your grid. It failed with internal properties and class. Once I made it public it was fine.
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
}
Upvotes: 5