The Syncfusion native Blazor components library offers 70+ UI and Data Viz web controls that are responsive and lightweight for building modern web apps.
.NET PDF framework is a high-performance and comprehensive library used to create, read, merge, split, secure, edit, view, and review PDF files in C#/VB.NET.
Hello, I have a problem with GridDataBoundGrid:
I''m using a custom DataSource of a collection that implements IBindingList.
The collection contains Class Person''s objects, this following is class Person:
public enum EGender
{
Man = 1,
Woman
}
public class Person
{
private string name;
private EGender gender;
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public EGender Gender
{
get { return this.gender; }
set { this.gender = value; }
}
}
I construct a DataSource for the "Gender" Column .
DataTable table = new DataTable();
table.Columns.Add("Value", typeof(EGender));
table.Columns.Add("Description", typeof(string));
DataRow row = table.NewRow();
row["Value"] = EGender.Man;
row["Description"] = "I''m a man";
table.Rows.Add(row);
row = table.NewRow();
row["Value"] = EGender.Woman;
row["Description"] = "I''m a woman";
table.Rows.Add(row);
gridDataBoundGrid1.Binder.InternalColumns["Gender"].StyleInfo.DataSource = table;
gridDataBoundGrid1.Binder.InternalColumns["Gender"].StyleInfo.ValueMember = "Value";
gridDataBoundGrid1.Binder.InternalColumns["Gender"].StyleInfo.ValueMember = "Description";
The problem:
When I change the value of gender(for example, select "I''m a woman"), there is a exception "Object type can not be converted to target type".
if my collection implements ITypedList interface, I will catch a exception "Invalid cast from ystem.Int32 to EGender"
please help me, thank u very much
ADAdministrator Syncfusion Team April 16, 2004 04:58 AM UTC
I assume the Gender column in the grid''s DataSource is also of type EGender, correct?
If so, try also setting;
gridDataBoundGrid1.Binder.InternalColumns["Gender"].StyleInfo.CellValueType = typeof(EGender);
ADAdministrator Syncfusion Team April 18, 2004 09:53 AM UTC
thank u very much!
I have already added gridDataBoundGrid1.Binder.InternalColumns["Gender"].StyleInfo.CellValueType = typeof(EGender); to my code, it does not work either, I add a Breakpoint at the
PropertyDescriptor.SetValueSetValue(
object component,
object value
); Method
the value is a Int32 type object which value is 1 or 2, is the value passed by GridDataBoundGrid?If I don''t construct a DataSource for the "Gender" Column, the value will be a EGender type and the value will be {EGender.Man} or {EGender.Woman}
(PS:My program returns a custom class named MyPropertyDescriptor : PropertyDescriptor collentcion in ITypedList.GetItemProperties Method, so I can watch the value passed by Grid)
please help me...
thanks...