public override object ProvideValue(IServiceProvider serviceProvider) { var targetProvider = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget)); var element = (FrameworkElement)targetProvider.TargetObject; var property = (DependencyProperty)targetProvider.TargetProperty; element.SetBinding(property, new Binding("Ignored") { Source = new IgnoringViewModel(), NotifyOnSourceUpdated = true }); Binding.AddSourceUpdatedHandler(element, Invoke(element)); return(null); }
private static void SourceUpdatedCommand_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (e.NewValue != null) { if (e.OldValue == null) { Binding.AddSourceUpdatedHandler(d, DependencyProperty_SourceUpdated); } else { Binding.RemoveSourceUpdatedHandler(d, DependencyProperty_SourceUpdated); } } }
protected override void OnAttached() { if (PropertyName == null) { throw new ArgumentException($"The PropertyName property must be set on behavior '{GetType().FullName}'."); } dependencyProperty = AssociatedObject.GetDependencyProperties(true).FirstOrDefault(dp => dp.Name == PropertyName); if (dependencyProperty == null) { throw new ArgumentException($"Unable to find property '{PropertyName}' on object of type '{AssociatedObject.GetType().FullName}'."); } propertyWatcher.Attach(AssociatedObject); // TODO: Register/Unregister handlers when the PropertyName changes propertyWatcher.RegisterValueChangedHandler(dependencyProperty, OnPropertyChanged); Binding.AddSourceUpdatedHandler(AssociatedObject, OnSourceUpdated); }
public UC_CaseStudy() { InitializeComponent(); int columnsCount = this.gridStreamIn.Columns.Count; gridStreamIn.Columns[columnsCount - 5].Width = new DataGridLength(1, DataGridLengthUnitType.Star); columnsCount = this.gridStreamOut.Columns.Count; gridStreamOut.Columns[columnsCount - 5].Width = new DataGridLength(1, DataGridLengthUnitType.Star); columnsCount = this.gridHeatIn.Columns.Count; gridHeatIn.Columns[columnsCount - 4].Width = new DataGridLength(1, DataGridLengthUnitType.Star); columnsCount = this.gridHeatOut.Columns.Count; gridHeatOut.Columns[columnsCount - 4].Width = new DataGridLength(1, DataGridLengthUnitType.Star); Binding.AddSourceUpdatedHandler(gridStreamIn, OnDataGridSourceUpdated); }
private void DataBindingModeWindow_Loaded(object sender, RoutedEventArgs e) { Binding.AddSourceUpdatedHandler(TBoxResult, new EventHandler <DataTransferEventArgs>((sender1, e1) => { /*更新数据源被触发*/ })); Binding.AddTargetUpdatedHandler(TBoxResult, new EventHandler <DataTransferEventArgs>((sender1, e1) => { /*更新控件数据被触发*/ })); }