public WatermarkedTextBox() { DefaultStyleKey = typeof(WatermarkedTextBox); _listener = DependencyPropertyChangedListener.Create(this, "Text"); _listener.ValueChanged += OnTextChanged; }
private void AttachLayerEventHandler(Layer layer) { Debug.Assert(layer != null); if (layer is ILegendSupport) { (layer as ILegendSupport).LegendChanged += OnLayerLegendChanged; } _layerDisplayNameChangedListener = new DependencyPropertyChangedListener <MapLayerItem>(this, layer, "DisplayName") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerMinScaleChangedListener = new DependencyPropertyChangedListener <MapLayerItem>(this, layer, "MinScale") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerMaxScaleChangedListener = new DependencyPropertyChangedListener <MapLayerItem>(this, layer, "MaxScale") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerIsVisibleChangedListener = new DependencyPropertyChangedListener <MapLayerItem>(this, layer, "IsVisible") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerStatusChangedListener = new DependencyPropertyChangedListener <MapLayerItem>(this, layer, "Status") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; }
private void AttachLayerEventHandler(Layer layer) { Debug.Assert(layer != null); if (layer is ILegendSupport) (layer as ILegendSupport).LegendChanged += OnLayerLegendChanged; _layerDisplayNameChangedListener = new DependencyPropertyChangedListener<MapLayerItem>(this, layer, "DisplayName") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerMinScaleChangedListener = new DependencyPropertyChangedListener<MapLayerItem>(this, layer, "MinScale") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerMaxScaleChangedListener = new DependencyPropertyChangedListener<MapLayerItem>(this, layer, "MaxScale") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerIsVisibleChangedListener = new DependencyPropertyChangedListener<MapLayerItem>(this, layer, "IsVisible") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; _layerStatusChangedListener = new DependencyPropertyChangedListener<MapLayerItem>(this, layer, "Status") { OnEventAction = (instance, source, eventArgs) => instance.OnLayerPropertyChanged(source, eventArgs) }; }
public static void addListener <TObject, TProperty>(TObject obj, DependencyProperty <TProperty> property, DependencyObject refHolder, PropertyChangedCallback <TObject, TProperty> callback) where TObject : DependencyObject { if (obj == null) { throw new ArgumentNullException("obj"); } if (refHolder == null) { throw new ArgumentNullException("refHolder"); } if (callback == null) { throw new ArgumentNullException("callback"); } Binding binding = new Binding { Source = obj, Path = new PropertyPath(property), Mode = BindingMode.OneWay }; DependencyPropertyChangedListener listener = new DependencyPropertyChangedListener(obj, property, (d, e) => callback((TObject)d, e.of <TProperty>())); BindingOperations.SetBinding(listener, DependencyPropertyChangedListener.ValueProperty, binding); GetAttachedChangeListeners(refHolder).Add(listener); }
private static void notifyValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { DependencyPropertyChangedListener listener = (DependencyPropertyChangedListener)sender; listener._callback(listener._source, new DependencyPropertyChangedEventArgs(listener._property, args.OldValue, args.NewValue)); }