Присоединение ViewModel к Представлению в Silverlight

Поместите репозиторий google () в самую первую строку зависимостей. Это будет работать.

5
задан Robert Kozak 11 June 2009 в 17:26
поделиться

4 ответа

Шон сначала написал хороший пост на View или ViewModel . Наличие виртуальной машины в XAML дает вам возможность смешивания (просмотр образцов данных в Blend), что неплохо, но цена должна вернуть информацию в представление. По этой причине Джон Папа отошел от этого подхода.

Я использую идею брака Шона (см. Ссылку выше).

HTH -Эрик

3
ответ дан 14 December 2019 в 08:58
поделиться

Как здесь, Я бы пошел с XAML. Есть и другие способы установить свойство DataContext. Если вам интересно, посмотрите на платформу Microsoft CAG для WPF.

0
ответ дан 14 December 2019 в 08:58
поделиться

Я установил виртуальную машину в коде, потому что это значительно упрощает тестирование представления. У Джастина Энджела есть отличный пост для этого:

public partial class Page : UserControl
{
    private PageViewModel _viewModel = new PageViewModel();

    public PageViewModel ViewModel
    {
        get { return _viewModel; }
        set { _viewModel = value; }
    } 

    public Page()
    {
        InitializeComponent();
        this.Loaded += new RoutedEventHandler(Page_Loaded);
    }

    void Page_Loaded(object sender, RoutedEventArgs e)
    {
        this.DataContext = ViewModel;
    }

}

Я нашел его сообщение очень полезным для изучения тонкостей тестирования, окружающего шаблон MVVM.

http://silverlight.net/blogs/justinangel/archive/2009 /02/25/silverlight-unit-testing-rhinomocks-unity-and-resharper.aspx

0
ответ дан 14 December 2019 в 08:58
поделиться

Я использую класс, который дублировал «Экран», который обрабатывает триаду MVVM. Я начал с внедрения V в виртуальную машину, затем с виртуальной машины в качестве ресурса в V, но в конце концов концепция экрана сработала для меня лучше всего. Это позволяет мне использовать V и VM без привязки друг к другу. Он также абстрагирует другие функции в моей общей структуре представления. Вот конструктор для моего класса Screen в качестве примера:

    public CatalogItemScreen(IUnityContainer container) : base(container)
    {
        this.ViewModel = Container.Resolve<ICatalogItemViewModel>();
        this.View = Container.Resolve<CatalogItemView>();
        this.View.DataContext = this.ViewModel;
    }

Обратите внимание, что виртуальная машина создается на экране, здесь создается буква V, а две привязаны друг к другу. В этом примере используются Unity и Prism, но для этого нет необходимости.

4
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: