private void This_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (e.OldValue is View.PityTimer) { View.PityTimer pt = (View.PityTimer)e.OldValue; pt.PropertyChanged -= Pt_PropertyChanged; } if (e.NewValue is View.PityTimer) { View.PityTimer pt = (View.PityTimer)e.NewValue; Current = pt.Current; pt.PropertyChanged += Pt_PropertyChanged; _stillSyncing = pt.SkipFirst && pt.WaitForFirst; _packId = pt.PackId; } else { Current = 0; _packId = null; } }
private void Pt_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (!(sender is View.PityTimer)) { return; } View.PityTimer pt = (View.PityTimer)sender; switch (e.PropertyName) { case "Current": Current = pt.Current; _stillSyncing = pt.SkipFirst && pt.WaitForFirst; break; case "Average": break; } }
private void BarChartSingle_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (e.OldValue is View.PityTimer) { View.PityTimer pt = (View.PityTimer)e.OldValue; pt.PropertyChanged -= Pt_PropertyChanged; } if (e.NewValue is View.PityTimer) { View.PityTimer pt = (View.PityTimer)e.NewValue; _single.Value = pt.Current; pt.PropertyChanged += Pt_PropertyChanged; } else { _single.Value = 0; } OnPropertyChanged("Average"); }