Ваше использование экземпляра объекта модели в Page сразу показалось мне странным. Это не совсем неправильно, но необычно для меня. Некоторые эксперименты привели меня к рабочему решению, хотя я и не знал причину ошибки, которая произошла в первую очередь. Немногие люди создают экземпляры объектов непосредственно в назначении DataContext, поэтому, вероятно, это не очень известный (и исправленный!) Дефект.
- Удалить базовый класс DependencyObject из MyModel.
- Сделайте экземпляр MyModel ресурсом Page, а не создайте его экземпляр непосредственно в DataContext.
- Измените обработчик события Button_Click для загрузки ресурса вместо именованного дочернего объекта Page.
- Все готово!
Ниже приведены фрагменты кода для рабочего решения.
Page.xaml
<UserControl.Resources>
<my:MyModel x:Key="TheModel"/>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource TheModel}">
Page.xaml.cs
private void Button_Click(object sender, RoutedEventArgs e)
{
((MyModel)Resources["TheModel"]).BeginUpdateBitmap();
}
MyModel.cs
public sealed class MyModel : INotifyPropertyChanged
{
Пожалуйста, также включите исходный код с вашим вопросом в будущем. Это сделало бы это немного проще.