Установка DataContext в UserControl из ViewModel - PullRequest
0 голосов
/ 16 октября 2011

У меня есть представление, которое содержит список.Я назову это CityListingPage.xaml.Эта страница списка имеет CityListingViewModel, которая связана с представлением примерно так:

DataContext="{Binding CityListing, Source={StaticResource Locator}}"

Это прекрасно работает.Теперь я хочу изменить свою страницу на элемент управления Pivot, где элементы Pivot будут экземплярами CityListingViewModel, но, очевидно, с другими данными конструктора (т. Е. Country)

Я извлек ListBox в UserControl.Сейчас я пытаюсь заставить эту работу работать так, чтобы для каждого списка я получал новый экземпляр CityListingViewModel.

Я попытался создать в ViewModelLocator коллекцию CityListingViewModels, но как передать экземпляр CityListingViewModel вUserControls DataContext?

Возможно, есть другой, лучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 18 октября 2011

Ниже приведены два ответа для использования коллекции для создания панорамных страниц. Но я совершенно уверен, что этот подход можно адаптировать к сводным страницам:

Второй пост должен быть более актуальным.

1 голос
/ 17 октября 2011

Не увидев ваш код, я немного угадаю, но думаю, что вы можете сделать это напрямую через привязку данных.Поскольку каждый элемент сводки получает экземпляр CityListingViewModel, вы можете просто передать эту привязку в UserControl:

Если вы разместите немного больше кода, показывающего, что вы пытаетесь сделать,мы могли бы быть более полезными.

0 голосов
/ 17 октября 2011

Если вы хотите разделить одни и те же данные на несколько представлений на сводной странице, я бы посоветовал НЕ использовать несколько моделей представлений, особенно если это тот же источник данных, который вы используете для всех данных.

Просто создайте параметр, к которому будет привязано каждое представление, и используйте Linq для управления тем, какие данные видны для этого параметра.

Таким образом, у вас будет переменная, которая будет содержать все данные, которые будут отображаться, и один параметр для запроса представления.эти данные.

...