Как я ввожу зависимости к пользовательским элементам управления в WPF

Что лучший способ состоит в том, чтобы прозрачно ввести зависимости (использующий контейнер МОК) к пользовательским элементам управления в WPF?

Я предполагаю, что пользовательские элементы управления являются частью XAML для окна или других пользовательских элементов управления. Также я думаю родитель (кто бы ни это), не должно быть ответственно за это. Решение для того, чтобы вручную ввести зависимости от родительских взглядов, не достаточно чистых для меня. Я не хочу управлять зависимостями своих компонентов явно как он voilates идея МОК.

Какое-либо событие, которое генерируется, когда логическое дерево создается так, я могу прервать его и ввести мои зависимости?

Править: зависимостями я также имею в виду ViewModel, Контроллер, Предъявителя (независимо от того, что шаблон используется),

Спасибо, Andrey

13
задан andrey.tsykunov 9 March 2010 в 14:37
поделиться

5 ответов

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

0
ответ дан 2 December 2019 в 01:10
поделиться

Лучший способ справиться с зависимостями в WPF - это следовать шаблону MVVM .

Короче говоря, вы не вставляете зависимости непосредственно в пользовательские элементы управления (представление), а скорее в их DataContext (ViewModel).

9
ответ дан 2 December 2019 в 01:10
поделиться

Я использовал общий класс приложения, который внедряет зависимости в ваш класс модели представления (при условии, что вы используете шаблон проектирования MVVM?) - используйте DI контейнер, такой как Unity. См. WPF Application Framework ( https://github.com/jbe2277/waf ), в котором содержатся образцы именно такого сценария, который вы описываете.

2
ответ дан 2 December 2019 в 01:10
поделиться

FrameworkElement имеет событие Initialized, которое вы могли бы подключить и внедрить зависимости. Вам следует проверить, наступает ли оно достаточно рано для вашего сценария.

0
ответ дан 2 December 2019 в 01:10
поделиться

Я тоже боролась с этим блоком разума:

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

Тогда кто будет? Смысл IoC в том, что что-то другое (родитель, модель представления, что-то, ...) определяет зависимости.

0
ответ дан 2 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

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