예제 #1
0
        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)
            };
        }
예제 #3
0
		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)
            };
        }
예제 #4
0
        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);
        }
예제 #5
0
            private static void notifyValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
            {
                DependencyPropertyChangedListener listener = (DependencyPropertyChangedListener)sender;

                listener._callback(listener._source, new DependencyPropertyChangedEventArgs(listener._property, args.OldValue, args.NewValue));
            }