Почему все виды сетки обновляются при добавлении элемента из общего элемента управления списком в активном виде сетки в wpf? - PullRequest
0 голосов
/ 22 марта 2019

У меня есть объект привязки наблюдаемой коллекции к моему представлению сетки данных. Но я не могу понять, где именно возникает проблема. Когда я связываю объекты коллекции с представлениями сетки и когда я добавляю элемент из элемента управления списком в активном представлении сетки ( Сетка, присутствующая на одной вкладке ), одновременно все виды сетки отражаются с добавленной записью во всех вкладки.

Я создал 2 модели просмотра и 2 пользовательских элемента управления. 1-й (общий вид) пользовательский элемент управления содержит элемент управления ComboBox.

2-й вид содержит Gridview.

View2.cs =

View2ViewModel _vIewModel = новый View2ViewModel (EventAggrtorService.Instance.EventAggregator, _vIewModel, DataCollection);

this.mydtGrid.ItemsSource = _vIewModel.DataCollection;

public ObservableCollection DataCollection = new ObservableCollection ();

В 1-й модели представления у меня есть событие публикации для отправки выбранного элемента из управления списком, а 2-я модель представления имеет subscriber.logic для вставки данных в сетку.

Проблема возникает, когда я нажимаю кнопку ленты (она создает новое окно и выполняет конструктор 2ndViewModel) для открытия новой вкладки, после чего новое окно подписывается на событие, которое я публикую из представления 1. следовательно, все представления вызывают логику для InsertData я выбрал в комбинированном управлении. Таким образом, во всех представлениях отображается новая запись.

public 2ndViewModel (IEventAggregator evAggrtor, ObservableCollection DataCollection)

    {       
        this._eventAggregator = evAggrtor;
        this.DataCollection =DataCollection;

        SubscriptionToken token = _eventAggregator.GetEvent<SelectedItemEvent2>().Subscribe(FillLookUpObject,
              Microsoft.Practices.Composite.Presentation.Events.ThreadOption.PublisherThread);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...