Как закрыть UserControl View в mvvm-light? - PullRequest
0 голосов
/ 15 июня 2010

Я создал образец с mainView и 2 другими представлениями (usercontrols).Я поместил кнопку «Закрыть» на дочерний вид и хочу закрыть этот вид.к этой кнопке прикреплена команда, и когда нажимается кнопка закрытия, я прошу ViewModelLocator ее очистить.

BUT - вид, отображаемый до сих пор. Что я делаю неправильно?Как закрыть представление userControl с помощью mvvm-light?

    private RelayCommand _closeCommand;
    public RelayCommand CloseCommand
    {
        get
        {
            if (_closeCommand == null)
            {
                _closeCommand = new RelayCommand(()=>
                   ViewModelLocator.ClearAllChannels(),

                   );
            }
            return _closeCommand;
        }

    }

Функция ViewModelLocator:

    public static void ClearAllChannels()
    {
        if (_allChannels != null)
        {
            _allChannels.Cleanup();
            _allChannels = null;
        }
    }

1 Ответ

0 голосов
/ 15 июня 2010

ViewModelLocator на самом деле не размещает ваши представления. Он просто предоставляет способ поиска модели представления, которая поддерживает конкретное представление.

Так что вам нужно попросить элемент управления, в котором размещены ваши представления (возможно, окно или фрейм), закрыть их.

...