Динамическое связывание данных в WPF Devx GridControl - PullRequest
0 голосов
/ 26 апреля 2011

Я работаю над приложением WPF (MVVM) и использую DevExpress GridCOntrol. Мне нужно создать общий экран для отображения данных из нескольких таблиц (отображая по одной за раз), которые имеют справочные данные. Поэтому элемент управления сеткой должен быть привязан к набору данных, который может содержать различное количество столбцов в зависимости от запрашиваемой таблицы.

Вопросы:

1) Какой тип объекта должен возвращать мой уровень доступа к данным? В настоящее время я могу думать только о наборе данных / DataTable .. есть ли другая альтернатива как я действительно хочу избегать использования наборов данных и таблиц данных ... может быть, dictionay? Каков наилучший способ вернуть такие данные?

2) Если я возвращаю что-то, кроме набора данных / таблицы данных, как связать мой GridControl с этим динамическим сбором данных?

Большое спасибо.

1 Ответ

4 голосов
/ 26 апреля 2011

Я использовал подход, аналогичный этому, в прошлом с успехом

http://www.paulstovell.com/dynamic-datagrid

public class Property : INotifyPropertyChanged
{
    public Property(string name, object value)
    {
        Name = name;
        Value = value;
    }

    public string Name { get; private set; }
    public object Value { get; set; }
}


public class Record
{
    private readonly ObservableCollection<Property> properties = new ObservableCollection<Property>();

    public Record(params Property[] properties)
    {
        foreach (var property in properties)
            Properties.Add(property);
    }

    public ObservableCollection<Property> Properties
    {
        get { return properties; }
    }
}
<DataGrid 
   Name="dataGrid" 
   AutoGenerateColumns="false" 
   ItemsSource="{Binding Path=Records}"/>
...