Привязка таблицы данных WPF к ObservableCollection не содержит столбцов - PullRequest
0 голосов
/ 26 августа 2010

Я связываю сетку данных с некоторыми данными и использую AutoColumnGeneration.При использовании обычного запроса linq к набору данных все работает нормально:

var queryAll = from actor in actorsAll
select new
   {
       ActorName = actor.IsPerson ? actor.FirstName + " " + actor.LastName : actor.CompanyName
   };

    MalatDetailsBudgetGridUC.ItemsSource = queryAll;

Но так как я хочу, чтобы моя сетка была привязана к ObservableCollection, я пытаюсь использовать следующее:

ActorsCollection collection = new ActorsCollection(actorType);
var queryAll = from actor in collection
    select new
    {
        ActorName = actor.IsPerson ? actor.FirstName + " " + actor.LastName : actor.CompanyName
    };

MalatDetailsBudgetGridUC.ItemsSource = queryAll;

При использовании этого моя сетка заполняется (очень тонкими) строками точно так, как и должно быть, но столбцы не генерируются.

BTW - ActorsCollection - это реализованная ObservableCollection, которая добавляет себя с объектами Actor.

Пожалуйста, помогите !!

1 Ответ

1 голос
/ 26 августа 2010

Ну, не могу сказать, что я много понимаю: в заголовке написано datagrid, но в вопросе вы говорите о древовидной структуре.

Не должно быть никакой разницы между двумя кодовыми блоками, при условии, что вы установили queryAll как DataContext сетки. Вы уверены, что DataContext установлен / привязан правильно?

edit: также попробуйте поискать с отладчиком типы, созданные анонимными конструкторами, которые могут дать вам некоторые идеи.

edit: чтобы добавить ответ, проблема заключалась в том, что вторая форма создает итератор и сетка данных (что интересно) путается с ней. Самый быстрый способ - заставить перечислитель сгенерировать коллекцию с помощью ToList () или подобного.

...