2013-08-29 3 views
0

У меня есть приложение ViewModel Call Apple с AppleItems. В пользовательском интерфейсе Apple ViewModel есть вложенный ViewModel под названием AppleNote, в котором есть элементы AppleNote. Когда я нахожусь в пользовательском интерфейсе Apple ViewModel, есть значок, который позволяет мне перемещаться в viewmodel AppleNote. Как я это делаю, используйте eventagregators в коде ниже. Он использует binding как DelegateCommand. Мой вопрос в том, что когда я нахожусь на Item # 3 или любом другом элементе AppleItems в Apple ViewModel, и когда я попал в AppleNote для этого элемента, он приводит меня в правильную модель viewModel, но когда я хочу переключиться обратно в представление AppleItem этой модели viewModel, Я просто добираюсь до первого элемента в AppleItems. Как я могу сказать, что, возвращаясь к объекту AppleItems viewModel, сохраните элемент, из которого вы пришли. Если есть какая-то путаница, дайте мне знать, чтобы я мог прояснить ситуацию.Как перемещаться между различными вложенными ViewModels?

Вот краткое изложение:

AppleViewModel -> Has -> AppleItems

   | 

      Has--> AppleNoteViewModel-->Has-->AppleNotesItem 

Going за определенный AppleItem к AppleNote работает, но восходящие к определенному пункту не работает.

private void AppleCommandExecute(object commandParameter) 
    { 

      _eventAggregator.Publish 
      (new ChangeValueViewEventArgs 
      { 
       ViewModelType = typeof (AppleViewModel), 


       Data = ValueId.ToString() 
      }); 
    } 

ответ

1

Как я реализовать интерфейс INotifyPropertyChanged непосредственно в моих классах данных, у меня нет никаких вложенных моделей просмотра, но я вложенные или иерархические классы данных. В моем базовом классе коллекции у меня есть свойство с именем CurrentItem того же типа, что и элементы коллекции.

Когда я привязываю одну из этих коллекций к свойству управления коллекцией ItemsSource, я также привязываю свойство CurrentItem к элементу управления SelectedItem. Это по существу означает, что я всегда знаю, какой текущий элемент в каждой коллекции.

Если вы реализуете один из этих CurrentItem объектов, тогда вы всегда будете знать, какой из AppleItem или AppleNote выбран. У вас не есть, чтобы поместить эти свойства в классы коллекции ... вместо этого вы можете просто добавить свойства правильного типа в свои модели просмотра. Дело в том, что если вы всегда привязываетесь к свойству SelectedItem, то вы всегда будете знать, какой элемент выбран.

Смежные вопросы