MVVM中未调用ListBox SourceUpdated的事件处理程序

时间:2019-04-28 20:25:34

标签: c# wpf mvvm

我想在getdata(url): void { this.http.get<>(url).subscribe(data => { // code } ); } 更新时运行事件处理程序。但是,即使在视图上更新了数据,也不会调用evnet处理程序。

XAML

DeviceListItem

查看

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

ViewModel

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

2 个答案:

答案 0 :(得分:1)

我认为您可以使用ObservableCollection的CollectionChanged

ATIR

答案 1 :(得分:0)

简而言之,我在没有sourceUpdated事件处理程序的情况下解决了这个问题。

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

private void OnDeviceListItemsUpdated(object sender, PropertyChangedEventArgs e)