I'm quite lost with something which is supposed to be simple.
I have Master/Detail/Detail relationship between 3 tables, master is set of controls and working smoothly with first detail this detail is the master of the second detail.
Master --> Detail(Master) D1 ---> Detail D2
D1 is binded to datagridview and D2 also binded to datagridview,
The usual scenario When you select a row from the master DataGridView,
the detail DataGridView gets populated with the columns related to the selected row,
and this working so fine but if i have more than one row in mater data grid and try to change selection between them the design of the second gridview break down and all rows disappear and when try to click save i got this exception "index must be non negative".
you can find image for what i mean
here
I am using .net 4.6 and nettires with codesmith generator .
Any suggestions !!!
What I have tried:
Function For binding
public void SetActiveBindingByActiveControl(Control ctrl)
{
BindingSource bsSource = null;
if (ctrl.GetType() == typeof(AdvancedDataGridView))
bsSource = (BindingSource)((AdvancedDataGridView)ctrl).DataSource;
else if (ctrl.GetType() == typeof(SmartDataGidView))
bsSource = (BindingSource)((SmartDataGidView)ctrl).DataSource;
else
{
PropertyInfo pi = ctrl.GetType().GetProperty("DataBindings");
if (pi != null)
{
ControlBindingsCollection coll = (ControlBindingsCollection)pi.GetValue(ctrl, null);
if (coll.Count > 0)
bsSource = (BindingSource)coll[0].DataSource;
}
}
SetActiveBindingByBindingSource(bsSource);
}