Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Belowzero, Вы писали:
B>>Задача такая – есть двумерная структура данных (отображение таблицы БД)
B>>ArrayList, элементами которого являются коллекции Hashtable (структура может быть и другой, главное, она должна содержать данные таблицы)
B>>Все это мне надо отразить в элементе DataGrid из WPF Toolkit. На стадии проектирования я не знаю состав полей таблицы и их имена и не могу объявить жесткую привязку к конкретным полям. Как быть?
_FR>Как быть с чем?
Как писать ксамл для такого датагрида? Описать там только то, что известно. А что нет — состав стобцов, например, — добавлять во время выполнения из кода. Так же из кода можно создавать и привязки.
Весь вопрос в том, как создавать привязки. Например, я писал так
public class DBRowData
{
public class DBItems
{
Hashtable ht = new Hashtable();
public string this[string Key]
{
get { return ht[Key].ToString(); }
set { ht[Key] = value; }
}
}
DBItems items = new DBItems();
public DBItems Values { get { return items; } }
}
.....
ObservableCollection<DBRowData> Data = new ObservableCollection<DBRowData>();
..... Заполняем коллекцию Data...............
DataGridTextColumn Column1 = new DataGridTextColumn();
Column1.Header = "Наименование";
//Вот такой байндинг не работает, пишет что не найдено свойство Values["Name"], хотя в таблице такое поле есть
Column1.Binding = new Binding("Values[\"Name\"]");
dgCustomers.Columns.Add(Column1);