2013-09-29 1 views
0

У меня возникли проблемы с попыткой показать диалог. IUIViusalizerService ShowDialog() метод дает следующие ошибки:Catel IUIViusalizerService ShowDialog() error

ошибка: «Метод„Показать“не найден„“MyView

отладчик бежит UIVisualizerService.cs к описанному ниже методу (начало на линии 380 в CS-файл):

protected virtual bool? ShowWindow(FrameworkElement window, bool showModal) 
{ 
     if (showModal) 
     { 
      var showDialogMethodInfo = window.GetType().GetMethodEx("ShowDialog"); 
      if (showDialogMethodInfo != null) 
      { 
       // Child window does not have a ShowDialog, so not null is allowed 
       return showDialogMethodInfo.Invoke(window, null) as bool?; 
      } 

      Log.Warning("Method 'ShowDialog' not found on '{0}', falling back to 'Show'", window.GetType().Name); 
     } 

     var showMethodInfo = window.GetType().GetMethodEx("Show"); 
     if (showMethodInfo == null) 
     { 
      string error = string.Format("Method 'Show' not found on '{0}', cannot show the window", window.GetType().Name); 
      Log.Error(error); 

      throw new NotSupportedException(error); 
     } 

     showMethodInfo.Invoke(window, null); 
     return null; 
    } 

Мой телефонный код:

public MainWindowViewModel() 
    { 
     ViewModels.MyViewModel mv = new MyViewModel(); 

     var ui = GetService<IUIVisualizerService>(); 
     ui.ShowDialog(mv) 
    } 

Вопросы: 1. Я должен impliment "Отображать()" метамфетамин в коде позади? 2. Есть ли другой базовый класс для DialogView и/или DialogViewModel, который должен использоваться?

Я начал иметь эту проблему с Catel 3,6

Спасибо

+0

1. № 2. Диалоговое представление/режимы просмотра должны наследоваться от Catel.Windows.DataWindow. –

ответ

0

Убедитесь, что модель представления, что вы используете решает тем, что вытекает из DataWindow или пользовательского окна с Catel WindowLogic реализованы как показано в документации.