OnPropertyChanged модели не обновляет пользовательский интерфейс ⇐ C#
-
Anonymous
OnPropertyChanged модели не обновляет пользовательский интерфейс
Я вызываю OnPropertyChanged в своей модели с помощью DispatchTimer в ViewModel, но модель не обновляется в пользовательском интерфейсе, если я не ссылаюсь на свойства модели TimeSpan.
TextBlock в представлении обновляется каждую миллисекунду, показывая увеличение TimeSpan, но TestUserControl не обновляется.
Модель просмотра
общедоступный класс TestViewModel: ViewModelBase { общественный DispatcherTimer _timer; общедоступная TestViewModel() { Тест1 = новый ТестОбъект(); Тест1.Имя = "ИмяТеста"; Тест1.ДатаВремя = ДатаВремя.Сейчас; _timer = новый DispatcherTimer(DispatcherPriority.Render); _timer.Interval = TimeSpan.FromMilli Seconds(1); _timer.Tick += (отправитель, аргументы) => { OnPropertyChanged(имя(Test1)); }; _таймер.Старт(); } частный TestObject test1; общедоступный TestObject Test1 { получать { вернуть тест1; } набор { тест1 = значение; OnPropertyChanged(имя(Test1)); } } }
Модель
общедоступный класс TestObject { общедоступная строка Имя {get; набор; } общественный DateTime DateTime {получить; набор; } общедоступный TimeSpan TimeSpan => DateTime.Now - DateTime; }
Просмотреть
//обновление пользовательского интерфейса TestUserControl
//показывает начальное значение //показывает начальное значение и не обновляется
Я вызываю OnPropertyChanged в своей модели с помощью DispatchTimer в ViewModel, но модель не обновляется в пользовательском интерфейсе, если я не ссылаюсь на свойства модели TimeSpan.
TextBlock в представлении обновляется каждую миллисекунду, показывая увеличение TimeSpan, но TestUserControl не обновляется.
Модель просмотра
общедоступный класс TestViewModel: ViewModelBase { общественный DispatcherTimer _timer; общедоступная TestViewModel() { Тест1 = новый ТестОбъект(); Тест1.Имя = "ИмяТеста"; Тест1.ДатаВремя = ДатаВремя.Сейчас; _timer = новый DispatcherTimer(DispatcherPriority.Render); _timer.Interval = TimeSpan.FromMilli Seconds(1); _timer.Tick += (отправитель, аргументы) => { OnPropertyChanged(имя(Test1)); }; _таймер.Старт(); } частный TestObject test1; общедоступный TestObject Test1 { получать { вернуть тест1; } набор { тест1 = значение; OnPropertyChanged(имя(Test1)); } } }
Модель
общедоступный класс TestObject { общедоступная строка Имя {get; набор; } общественный DateTime DateTime {получить; набор; } общедоступный TimeSpan TimeSpan => DateTime.Now - DateTime; }
Просмотреть
//обновление пользовательского интерфейса TestUserControl
//показывает начальное значение //показывает начальное значение и не обновляется
Мобильная версия