/// <summary> /// Called when the <c>DataContext</c> property of the <see cref="TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> public virtual void OnTargetControlDataContextChanged(object sender, DependencyPropertyValueChangedEventArgs e) { Log.Debug("DataContext of TargetControl '{0}' has changed to '{1}'", TargetControl.GetType().Name, ObjectToStringHelper.ToTypeString(TargetControl.DataContext)); var dataContext = TargetControl.DataContext; if (dataContext == null) { return; } if (BindingHelper.IsSentinelObject(dataContext)) { return; } if (ViewModel == dataContext) { return; } if (dataContext.GetType().IsAssignableFromEx(ViewModelType)) { // Use the view model from the data context, probably set manually ViewModel = (IViewModel)dataContext; } }
/// <summary> /// Called when the <c>DataContext</c> property of the <see cref="TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.Windows.DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> public override void OnTargetControlDataContextChanged(object sender, DependencyPropertyValueChangedEventArgs e) { // Fix in WinRT to make sure inner grid is created if (_viewModelGrid == null) { if (TargetControl.Content != null) { TargetControl.UnsubscribeFromDependencyProperty("Content", OnTargetControlContentChanged); CreateViewModelGrid(); } else { Log.Error("Content of control '{0}' is not yet loaded, but the DataContext has changed. The control will bind directly to the DataContext instead of the view model", TargetControl.GetType().FullName); } } base.OnTargetControlDataContextChanged(sender, e); var oldDataContext = e.OldValue; var dataContext = e.NewValue; if (BindingHelper.IsSentinelObject(dataContext)) { return; } if (oldDataContext != null) { ClearWarningsAndErrorsForObject(oldDataContext); } UpdateDataContextToUseViewModel(dataContext); }
/// <summary> /// Invoked whenever the effective value of any dependency property on this <see cref="T:System.Windows.FrameworkElement"/> has been updated. The specific dependency property that changed is reported in the arguments parameter. Overrides <see cref="M:System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)"/>. /// </summary> /// <param name="e">The event data that describes the property that changed, as well as old and new values.</param> private void OnDependencyPropertyChanged(object sender, DependencyPropertyValueChangedEventArgs e) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(e.PropertyName)); } }
private void OnTextChanged(object sender, DependencyPropertyValueChangedEventArgs args) { if (_watermarkContent != null) { _watermarkContent.Opacity = !string.IsNullOrEmpty(Text) ? 0.0 : 0.5; } }
/// <summary> /// Called when a property on the <see cref="TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DependencyPropertyValueChangedEventArgs"/> instance containing the event data.</param> private void OnTargetControlPropertyChangedInternal(object sender, DependencyPropertyValueChangedEventArgs e) { if (!((FrameworkElement)sender).IsRealDependencyProperty(e.PropertyName)) { // Ignore, this is a wrapper return; } //Log.Debug("Property '{0}' of TargetControl '{1}' has changed", e.PropertyName, TargetControl.GetType().Name); if (string.Equals(e.PropertyName, "DataContext", StringComparison.OrdinalIgnoreCase)) { OnTargetControlDataContextChanged(sender, e); } OnTargetControlPropertyChanged(sender, e); }
private void OnTextChanged(object sender, DependencyPropertyValueChangedEventArgs args) { if (_watermarkContent != null) { _watermarkContent.Opacity = !string.IsNullOrEmpty(Text) ? 0.0 : 0.5; } if (_watermarkInlineContent != null) { _watermarkInlineContent.Opacity = !string.IsNullOrEmpty(Text) ? 0.5 : 0.0; } //var text = Text ?? string.Empty; //if (_watermarkInlineContentBorder != null) //{ // var rect = GetRectFromCharacterIndex(text.Length); // _watermarkInlineContentBorder.RenderTransform = new TranslateTransform { X = rect.X - 12.0, Y = rect.Y - rect.Height / 2.0 - 8.0 }; //} }
/// <summary> /// Called when the <c>DataContext</c> property of the <see cref="TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> public override void OnTargetControlDataContextChanged(object sender, DependencyPropertyValueChangedEventArgs e) { // Fix in WinRT to make sure inner grid is created if (_viewModelGrid == null) { if (TargetControl.Content != null) { CreateViewModelGrid(); } else { Log.Error("Content of control '{0}' is not yet loaded, but the DataContext has changed. The control will bind directly to the DataContext instead of the view model", TargetControl.GetType().FullName); } } // Fix for CTL-307: DataContextChanged is invoked before Unloaded because Parent is set to null var targetControlParent = TargetControl.Parent; if (targetControlParent == null) { return; } base.OnTargetControlDataContextChanged(sender, e); var oldDataContext = e.OldValue; var dataContext = e.NewValue; if (BindingHelper.IsSentinelObject(dataContext)) { return; } if (oldDataContext != null) { ClearWarningsAndErrorsForObject(oldDataContext); } if (!IsUnloading) { UpdateDataContextToUseViewModel(dataContext); } }
/// <summary> /// Called when the associated dependency property has changed. /// </summary> private void OnDependencyPropertyChanged(object sender, DependencyPropertyValueChangedEventArgs e) { if (UpdateDelay < 50) { UpdateBinding(); return; } if (UpdateDelay > 5000) { UpdateDelay = 5000; } if (_timer.IsEnabled) { _timer.Stop(); } _timer.Interval = new TimeSpan(0, 0, 0, 0, UpdateDelay); _timer.Start(); }
private static void OnMarginChanged(object sender, DependencyPropertyValueChangedEventArgs e) { if (!(sender is FrameworkElement frameworkElement)) { return; } frameworkElement.UnsubscribeFromDependencyProperty(nameof(FrameworkElement.Margin), OnMarginChanged); var currentMargin = (Thickness)e.NewValue; var left = GetLeft(frameworkElement); var top = GetTop(frameworkElement); var right = GetRight(frameworkElement); var bottom = GetBottom(frameworkElement); left = double.IsNaN(left) ? currentMargin.Left : left; top = double.IsNaN(top) ? currentMargin.Top : top; right = double.IsNaN(right) ? currentMargin.Right : right; bottom = double.IsNaN(bottom) ? currentMargin.Bottom : bottom; frameworkElement.Margin = new Thickness(left, top, right, bottom); }
private void OnDataContextChanged(object sender, DependencyPropertyValueChangedEventArgs e) { _viewDataContextChanged.SafeInvoke(this, new DataContextChangedEventArgs(e.OldValue, e.NewValue)); }
/// <summary> /// Called when a dependency property on this control has changed. /// </summary> /// <param name="e">The <see cref="DependencyPropertyValueChangedEventArgs"/> instance containing the event data.</param> protected virtual void OnPropertyChanged(DependencyPropertyValueChangedEventArgs e) { }
private void OnSelectedItemChanged(object sender, DependencyPropertyValueChangedEventArgs e) { UpdateItems(); }
/// <summary> /// Called when a property on the <see cref="TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DependencyPropertyValueChangedEventArgs"/> instance containing the event data.</param> public virtual void OnTargetControlPropertyChanged(object sender, DependencyPropertyValueChangedEventArgs e) { TargetControlPropertyChanged.SafeInvoke(this, e); }
/// <summary> /// Called when the content of the target control has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.Windows.Data.DependencyPropertyValueChangedEventArgs"/> instance containing the event data.</param> private void OnTargetControlContentChanged(object sender, DependencyPropertyValueChangedEventArgs e) { CreateViewModelGrid(); }
private void OnItemsSourceChanged(object sender, DependencyPropertyValueChangedEventArgs e) { UnsubscribeFromCollection(); SubscribeToCollection(); }
/// <summary> /// Called when a property on the <see cref="LogicBase.TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void OnLogicTargetControlPropertyChanged(object sender, DependencyPropertyValueChangedEventArgs e) { TargetControlPropertyChanged.SafeInvoke(this, e); }
/// <summary> /// Called when the <c>DataContext</c> property of the <see cref="TargetControl"/> has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.Windows.DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> public virtual void OnTargetControlDataContextChanged(object sender, DependencyPropertyValueChangedEventArgs e) { Log.Debug("DataContext of TargetControl '{0}' has changed to '{1}'", TargetControl.GetType().Name, ObjectToStringHelper.ToTypeString(TargetControl.DataContext)); var dataContext = TargetControl.DataContext; if (dataContext == null) { return; } if (BindingHelper.IsSentinelObject(dataContext)) { return; } if (ViewModel == dataContext) { return; } if (dataContext.GetType().IsAssignableFromEx(ViewModelType)) { // Use the view model from the data context, probably set manually ViewModel = (IViewModel)dataContext; } }
/// <summary> /// Called when the content of the target control has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.Windows.Data.DependencyPropertyValueChangedEventArgs"/> instance containing the event data.</param> private void OnTargetControlContentChanged(object sender, DependencyPropertyValueChangedEventArgs e) { TargetControl.UnsubscribeFromDependencyProperty("Content", OnTargetControlContentChanged); CreateViewModelGrid(); }
private void OnPaddingChanged(object sender, DependencyPropertyValueChangedEventArgs e) { UpdateWaterMarkMargin(); }
private void OnRenderingProgramChanged(object sender, DependencyPropertyValueChangedEventArgs e) { var canvas = sender as CustomizedCanvas; canvas?.Invalidate(); }