У меня есть иерархическая структура данных для простого приложения WPF:
Объект TvshowCollection содержит объекты Tvshow.Каждый объект Tvshow содержит объект EpisodeCollection, который, в свою очередь, содержит объекты Episode.Модель интенсивно использует INotifyPropertyChanged.
Мне нужно отобразить список всех объектов Episode в сетке вместе с именем Tvshow.
Если я возьму всеЭпизоды из структуры и их привязка к ItemSource сетки позволяют легко связать каждое свойство эпизода со столбцом, но как я могу затем связать один из столбцов со связанным свойством Tvshow Name, которое находится выше в иерархии?
Можно ли как-то сгладить данные в ViewModel?
Надеюсь, это имеет смысл.
Спасибо!
edit:
Спасибо MAW74656, это то, что я хочу, чтобы конечный результат был - все эпизоды в отображаемой системе, с деталями Tvshow, повторенными в сетке (Airdate является свойством Episode):
Изображение здесь: http://i.stack.imgur.com/SY1Ib.png
У меня это работает сейчас, в некоторой степени, но не так, как мне особенно нравится.Я поместил свойство в ViewModel для Grid, чтобы оно возвращало объект, содержащий нужную мне информацию:
public class TvshowGridViewModel : BaseViewModel
{
private Repository _repo;
private TvshowCollection _allTvshows;
public object AllTvshows
{
get
{
var flatList = from tvshow in _allTvshows
from episode in tvshow.Episodes
select new { TvshowName = tvshow.Name, EpisodeName = episode.Name, EpisodeNumber = episode.Number, EpisodeAirdate = episode.Airdate };
return flatList;
}
}
public TvshowGridViewModel()
{
_repo = new Repository("");
_allTvshows = _repo.Tvshows;
}
}
Но я не могу сделать это двусторонним связыванием.Есть ли способ лучше?