wpf - viewmodel с двумя привязываемыми коллекциями.Используйте datacontext из одной коллекции, чтобы отфильтровать другую - PullRequest
0 голосов
/ 16 ноября 2010

Длинное название, надеюсь, оно имеет смысл.Не могу понять, как бы я это реализовал.Или, если мой подход хотя бы в некотором роде с лучшими практиками для такого рода вещей, потому что я все еще работаю над mvvm и, возможно, еще не правильно его использую.Я работаю над этим, и он содержит два свойства, которые указывают на коллекции моделей данных.

 public ChuteGroupsModel Groups { get; set; }
    public WaveStatusModel Waves { get; set; }

Каждая из этих моделей данных содержит все данные, которые мне нужны для вкладки в моем tabcontrol моего MainWindow.Одна вкладка представляет собой сетку статистических данных, а другая страница представляет собой пользовательский элемент управления, который визуализирует физическую «рабочую» область.

Сегодня я решил, что хотел бы отобразить некоторые статистические значения из сетки (# элементов, # оставшихся и т. д.) во всплывающих подсказках моих пользовательских элементов управления.Мои две коллекции связаны только полем ID #.

Итак, в основном мне нужно найти способ фильтрации / привязки к моей коллекции "Waves" в соответствии со свойством ID # текущего элемента, который являетсяпривязан к «Группам».

Очевидный простой ответ здесь состоит в том, чтобы изменить мое представление sql, включив в него дополнительные поля, которые сделали бы их доступными для немедленной привязки в моем приложении.

Посколькувсе данные, которые я хочу визуализировать, уже существуют, я не могу не чувствовать, что изменения в sql немного ненужны и что существует какое-то простое решение, которое поможет мне собрать эти значения из моей другой коллекции.

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

1 Ответ

0 голосов
/ 17 ноября 2010

Возможно, вам будет полезна дополнительная информация о привязке ViewModel / View.В данном случае, если ваша ViewModel предоставляет свойства ваших групп и волн для вашего представления, а представление, содержащее TabControl, привязано к вашей модели представления, я не вижу причин, по которым элементы управления в любой из таблиц TabPage не могут быть привязаны к свойствам, полученным из любой модели данных.

Другими словами, ViewModel может абстрагировать отдельные коллекции моделей данных от View, создав, например, свою собственную коллекцию объектов, которые предоставляют свойства как ChuteGroup, так и егосвязанный WaveStatus.Затем представление можно привязать к этой коллекции и получить доступ к свойствам обоих объектов.

...