У меня есть две панели стека, одна из которых имеет набор данных datacontext, а дочерние элементы управления внутри нее привязаны к свойствам объекта. Вторая панель стека не имеет привязки данных, но дочерний элемент управления ссылается на объект и свойство.Изменения в WPF ViewModel не обновлены для дочерних элементов управления, содержащихся в родительском элементе управления с набором данных datacontext
При обновлении объекта в режиме просмотра изменения, внесенные в имя и фамилию, отображаются во второй панели стека, но ничего не меняется в первом, и я не понимаю, почему? Кто-нибудь имеет какие-либо советы относительно того, почему это будет указано, что при первом загрузке приложения на обеих панелях отображаются правильные данные, проблема возникает только в том случае, если изменение производится с помощью модели viewmodel.
XAML:
<Grid>
<StackPanel>
<StackPanel DataContext="{Binding Person}">
<TextBlock Text="{Binding FirstName}"></TextBlock>
<TextBox Text="{Binding LastName}"></TextBox>
<Button Command="{Binding DataContext.Commands.Update, ElementName=mainView}" VerticalAlignment="Bottom" Margin="0 0 0 20">Update</Button>
</StackPanel>
<StackPanel>
<TextBlock Text="{Binding Person.FirstName}"></TextBlock>
<TextBox Text="{Binding Person.LastName}"></TextBox>
</StackPanel>
</StackPanel>
</Grid>
прилагается копия всего решения, которое демонстрирует проблему можно найти here.
Любая помощь очень ценится!
могли бы вы показать нам ViewModel тоже? –
Извините, что забыл добавить ссылку, которую я сейчас добавил. –
Я проверил ваш код - ваш класс 'Person' также должен реализовывать' INotifyPropertyChanged', а его свойства 'FirstName' и' LastName' должны поднять событие PropertyChanged. Я считаю, что исправление этого должно решить вашу проблему. – Grx70