При изменении поля со списком со значениями 1 -5 на внешнем интерфейсе событие onpropertychange запускает метод, который создает экземпляр коллекции Viewmodel, которая отражает значение комбинированного списка. Поле со списком также обрабатывает некоторое поведение пользовательского интерфейса в коде, когда изменяется выбор, который обрабатывает показ и скрытие некоторых элементов управления. Проблема, когда значение раскрывающегося списка загружается из базы данных через модель, при которой возникает событие изменения свойства onproperty, но оно не имеет обработчика и поэтому игнорируется. Тем не менее, код за частью действительно срабатывает, и на экране отображаются правильные элементы управления. Как я могу убедиться, что это событие происходит, когда значение элемента управления изменяется данными, а не пользователем?
private void MethodInformationViewModel_PropertyChanged(object sender,
System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "NumberOfTests")
{
ManageRunDialogues();
}
}
XAML
<ComboBox x:Name="CB_NumberOfTests" Grid.Column="16" Grid.Row="4"
Grid.ColumnSpan="2" SelectionChanged="CB_NumberOfTests_SelectionChanged"
SelectedValue="{Binding
vmcTPMViewModel.MethodInformationViewModel.NumberOfTests, Mode=TwoWay}">
<sys:Int32>1</sys:Int32>
<sys:Int32>2</sys:Int32>
<sys:Int32>3</sys:Int32>
<sys:Int32>4</sys:Int32>
<sys:Int32>5</sys:Int32>
</ComboBox>
Я ожидаю, что любое изменение свойства NumberOfTests вызовет событие onpropertychenge. Это верно, но когда свойство изменяется, когда вызов базы данных заполняет модель в конструкторе модели, обработчик отсутствует, и событие изменения не запускается, и поэтому вызов метода ManageRunDialogues () не происходит. Что я могу сделать?