Базы данных привязывают несколько списков к сетке - PullRequest
0 голосов
/ 05 декабря 2011

Мне нужно привязать данные нескольких списков или списков привязки (не должно иметь значения) к одной сетке. Все эти списки имеют одинаковый размер, но разные типы объектов. Свойства различных объектов в этих списках должны отображаться в виде столбцов рядом друг с другом, как если бы первый элемент списка A принадлежал первому элементу списка B и т. Д.

До сих пор я копировал данные в DataTable и использовал их в качестве источника данных, но по разным причинам это уже невозможно.

Я знаю, что невозможно связать более одного списка напрямую, но я понятия не имею, как начать это. Я немного читал о привязке данных, но, похоже, мне нужно много кода, чтобы это работало, работало с CurrencyManager и т. Д.

Есть ли простое решение, которое могло бы мне помочь? Возможно, класс-обертка, который делает все это? Если нет, то может ли кто-нибудь дать мне несколько советов о том, какие интерфейсы должны быть реализованы и что еще нужно иметь в виду?

1 Ответ

0 голосов
/ 05 декабря 2011

Если вы не можете сделать эти разрозненные объекты одним объектом, то это не список для привязки.

Вы могли бы сделать мелкую копию каждого из этих объектов в новом списке объектов и создать их на лету:

Object MyFirstObject;
Object MySecondObject;

void BindableClass( Object class_1, Object class_2 )
{
    MyFirstObject = class_1;
    MySecondObject = class_2;
}

public String _firstColumnString { get { return MyFirstObject.FirstColumnString; } }    
public String _secondColumnString { get { return MySecondObject.SecondColumnString; } }

Еще лучше,извлеките только ту информацию, которая вам нужна в вашем конструкторе BindableClass.

void BindableClass( Object class_1, Object class_2 )
{
    _firstColumnString = MyFirstObject.FirstColumnString;
    _secondColumnString = MySecondObject.SecondColumnString;
}

(Но теперь вы снова просто в одном списке!)

Затем вы можете создавать объекты, выполнивчто-то вроде:

for (int i = 0; i < TheListSize; i++)
{
     ABindableList list = new BindableClass( FirstList[i], SecondList[i] );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...