public class ViewModel : INotifyPropertyChanged { private ObservableCollection _testData; public ObservableCollection TestData { get { return _testData; } set { _testData = value; OnPropertyChanged("TestData"); } } public ViewModel() { TestData = new ObservableCollection(); TestData.Add(new TimeModel() { Time1 = new DateTime(2022,10,31,1,0,0 ), Time2 = new DateTime(2022, 10, 31, 1, 0, 0) }); TestData.Add(new TimeModel() { Time1 = new DateTime(2022, 10, 31, 2, 0, 0), Time2 = new DateTime(2022, 10, 31, 2, 0, 0) }); } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(String propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } } public class TimeModel : INotifyPropertyChanged { private DateTime time1; public DateTime Time1 { get { return time1; } set { time1 = value; OnPropertyChanged("Time1"); OnPropertyChanged("Time3"); } } private DateTime time2; public DateTime Time2 { get { return time2; } set { time2 = value; OnPropertyChanged("Time2"); OnPropertyChanged("Time3"); } } public DateTime Time3 { get { var date = new DateTime(Time1.Year , Time1.Month , Time1.Day , Time1.Hour + Time2.Hour, Time1.Minute + Time2.Minute, Time1.Second + Time2.Second); return date; } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(String propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } }