Джош Смит MVVM Pattern Большая проблема - PullRequest
1 голос
/ 20 октября 2010

Я создаю проект, используя Джоша Смита МОДЕЛЬ-VIEW-VIEWMODEL (MVVM) КОНСТРУКТОР-МОДУЛЬ ДЛЯ WPF

Но есть одна проблема.В той же рабочей области показана та же операция.Мой VIEW содержит tabcontrol.после создания 2 или более одинаковых рабочих пространств, когда я изменял выбранный индекс для tabcontrol из любого рабочего пространства, другой же рабочий стол tabcontrol показывал тот же результат.

Я тестируюсь на примере проекта Джоша Смита.Но так же, как мой проект.Если хочешь показать.загрузите код Джоша Смита из здесь и в файле MainWindowViewModel.cs, изменив следующий код с

void ShowAllCustomers()
        {
            AllCustomersViewModel workspace = null;
                this.Workspaces.FirstOrDefault(vm => vm is AllCustomersViewModel)
                as AllCustomersViewModel;

            if (workspace == null)
            {
                workspace = new AllCustomersViewModel(_customerRepository);
                this.Workspaces.Add(workspace);
            }

            this.SetActiveWorkspace(workspace);
        }

На

void ShowAllCustomers()
        {
            AllCustomersViewModel workspace = null;

            workspace = new AllCustomersViewModel(_customerRepository);
            this.Workspaces.Add(workspace);            

            this.SetActiveWorkspace(workspace);
        }

Затем выполните код и откройте 2 или более1016 * и изменение вида списка в порядке столбцов.Все открытые all customer view показывают тот же результат

Как решить эту проблему

Ответы [ 2 ]

3 голосов
/ 20 октября 2010

Если бы я мог процитировать Сашу Барбера, создателя Cinch, по адресу http://www.codeproject.com/KB/WPF/CinchV2_3.aspx, см. Раздел «Рабочие пространства: специальные примечания». Судя по всему, у вас возникла та же проблема, но я тоже учусь, поэтомуЯ могу ошибаться.

"Теперь все это грандиозно, но, к сожалению, WPF создает некоторую странность на нашем пути, в форме TabControl. Это ублюдок элемента управления. Кто из вас знает, чтов WPF TabControls VisualTree сохраняет только выбранный элемент в VisualTree.

Вам это не нравится? Нет, подумайте еще раз (хотя это только проблема при использовании DataTemplates, прямая комбинация TabItem / View в порядке).Таким образом, у нас есть несколько представлений, которые используют MeffedMVVM для создания ViewModel в TabControl. Затем мы меняем вкладки и угадываем, что View удаляется, и когда мы возвращаемся к предыдущему TabItem, так как мы используем View 1st и MeffedMVVM, новыйViewModel создан для просмотра. "

1 голос
/ 28 июня 2011

Я не уверен, что понимаю, что вы пытаетесь сказать, но у меня была проблема с тем, что новая вкладка не была выбрана при добавлении рабочего пространства.Установка для свойства IsSynchronisedWithCurrentItem значения True в TabControl решила проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...