Когда внедренный объект зависимости инициализируется в WPF? - PullRequest
0 голосов
/ 14 октября 2011

Я пытаюсь обернуть голову вокруг концепции внедрения зависимостей в WPF. Если у меня есть диалоговое окно, в котором ViewModel определена как внедренная зависимость, в какой момент во время выполнения инициализируется зависимая ViewModel и ей присваивается значение? Это происходит во время вызова метода Initialize () в конструкторе диалога?

public partial class LoginDialog
    {

        private LoginViewModel _loginViewModel;

        [Dependency]
        public LoginViewModel LoginViewModel
        {
            get { return _loginViewModel; }
            set
            {
               ...
            }
        }

        public LoginDialog()
        {
            InitializeComponent();
        }
    }

1 Ответ

2 голосов
/ 14 октября 2011

Ответ на ваш вопрос: это зависит (не каламбур).Это зависит от многих вещей, какую платформу DI вы используете (Unity, Ninject и т. Д.)?В Unity (у меня есть больше опыта с этим), вы должны определить, какова продолжительность жизни объекта, и в зависимости от его жизни вы можете выполнять вещи в разное время.

Чтобы попытаться быть болееспецифические: как правило, свойство зависимости, как вы там продемонстрировали, будет «установлено», когда создается объект, для которого оно определено.Поэтому, когда создается экземпляр LoginDialog, следует установить LoginViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...