Ahmed Abd EL_Hameed Ответов: 0

Мастер-деталь\элемент дизайна сломать


Я совершенно запутался в том, что должно быть простым.
У меня есть отношение Master/Detail/Detail между 3 таблицами, master-это набор элементов управления и плавно работает с первой деталью, эта деталь является мастером второй детали.

Мастер --&ГТ; деталь ("мастер") Д1 ---&ГТ; деталь Д2

Д1 привязывается к datagridview и Д2 также связанные с элементом управления datagridview,
Обычный сценарий при выборе строки из главного представления DataGridView,
подробное представление DataGridView заполняется столбцами, связанными с выбранной строкой,

и это работает так хорошо, но если у меня есть более одной строки в сетке данных mater и я пытаюсь изменить выделение между ними, дизайн второго gridview ломается, и все строки исчезают, а при попытке нажать кнопку Сохранить я получаю это исключение "индекс должен быть неотрицательным".

вы можете найти изображение для того, что я имею в виду здесь

Я использую .net 4.6 и nettires с генератором codesmith .


Любые предложения !!!

Что я уже пробовал:

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);
        }

0 Ответов