У меня есть следующий код. (Предназначен для открытия модели представления из кода).
private void OpenView<viewType,viewModelType> (object parameters) {
//STEP 1. CREATE THE VIEW
var view = (viewType)Activator.CreateInstance(typeof(viewType));
//STEP 2. SET THE DATACONTEXT
var viewModel = (viewModelType)view.DataContext;
//STEP 3. OPEN THE WINDOW AND WAIT UNTIL MANUALLY CLOSED
TestWindow window = new TestWindow();
window.LayoutRoot.Children.Add(view);
window.Activate();
window.ShowDialog();
}
Компилятор выдает мне следующую ошибку:
Ошибка CS1061 «viewType» не содержит определения для
«DataContext» и без метода расширения «DataContext», принимающий первый
может быть найден аргумент типа 'viewType' (вы не используете
директива или ссылка на сборку?)
Я не могу получить доступ к DataContext на шаге 2, потому что я предполагаю, что компилятор не знает, какой тип является переменной представления. Может кто-нибудь сказать мне, как я могу сказать компилятору, какой тип переменной представления? и если это невозможно. Как обойти это?