MEF и MVVM - способ добавления соглашений? - PullRequest
3 голосов
/ 22 июля 2011

Есть ли способ подключиться к внутренним компонентам CompositionContainer?

Например, скажем, каждый раз, когда импорт вызывается при экспорте, заканчивающемся словом "View", я мог бы захотеть добавить окончание экспортас "ViewModel" в его DataContext.

Есть ли способ сделать это?Я стараюсь избегать кода, подобного этому, в каждом представлении:

    [Export("MainView")]
    public partial class MainView : Window
    {
        [ImportingConstructor]
        public MainView([Import("MainViewModel")] dynamic viewModel)
        {
            InitializeComponent();

            DataContext = viewModel;
        }
    }

Было бы неплохо упростить это и использовать условные обозначения:

        [Export("MainView")]
        public partial class MainView : Window
        {
            public MainView()
            {
                InitializeComponent();
            }
        }

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Есть некоторые люди, работающие над этим, включая, очевидно, команду Mef :) Вот сообщение в блоге, которое может вас заинтересовать:

http://thecodejunkie.com/2010/03/bringing-convention-based-registration.html

А вот еще один чуть менее подробный:

http://blogs.msdn.com/b/hammett/archive/2011/03/08/mef-s-convention-model.aspx

0 голосов
/ 26 июля 2011

Думаю, вы ищете библиотеку или фреймворк, которые могут уменьшить ваши усилия.

Пожалуйста, ознакомьтесь с библиотекой WPF Application framework . Я использую это очень хорошо.

...