Обработчик события ListBox SourceUpdated не вызывается в MVVM - PullRequest
0 голосов
/ 28 апреля 2019

Я хочу запустить обработчик событий при обновлении DeviceListItem. Но обработчик evnet не вызывается, даже если данные обновляются при просмотре.

XAML

<ListBox x:Name="DeviceListItem" ItemsSource="{Binding DeviceListItems, 
                     UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
                     SourceUpdated="OnDeviceListItemsUpdated">

View

private void OnDeviceListItemsUpdated(object sender, EventArgs e)
{
    // to do
}

ViewModel

private ObservableCollection<Device> mDeviceListItems;
public ObservableCollection<Device> DeviceListItems
{
    get { return mDeviceListItems;  }
    set { mDeviceListItems = value; 
          RaisePropertyChangedEvent("DeviceListItems"); }
}

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Я думаю, что вы можете использовать CollectionChanged of ObservableCollection

 DeviceListItems.CollectionChanged += itemDisplayList_CollectionChanged;

  void itemDisplayList_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {

        }
0 голосов
/ 29 апреля 2019

Просто я решил это без sourceUpdated обработчика событий.

    INotifyPropertyChanged viewModel = (INotifyPropertyChanged)DataContext;
    viewModel.PropertyChanged += OnDeviceListItemsUpdated;
}

private void OnDeviceListItemsUpdated(object sender, PropertyChangedEventArgs e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...