DependencyProperty как узнать инициатора?
От: Glas  
Дата: 26.06.11 15:50
Оценка:
Есть control с bindable свойством. Я хочу запретить изменение этого свойства из других классов, но в тоже время оно должно биндиться и устанавливаться этим классом. По сути можно поставить Mode=OneWayToSource, но хотелось бы сделать защиту. Можно ли это реализовать или уповать только на Mode?

public class WPFControl : Control
    {
        public static RoutedEvent RenderWindowChangedEvent =
            EventManager.RegisterRoutedEvent("RenderWindowChanged", RoutingStrategy.Bubble,
            typeof(RoutedPropertyChangedEventHandler<PropertyType >), typeof(WPFControl));

        public event RoutedPropertyChangedEventHandler<PropertyType > RenderWindowChanged
        {
            add { AddHandler(RenderWindowChangedEvent, value); }
            remove { RemoveHandler(RenderWindowChangedEvent, value); }
        }

        public static readonly DependencyProperty RenderWindowProperty =
            DependencyProperty.Register("RenderWindow", typeof(PropertyType), typeof(WPFControl),
            new FrameworkPropertyMetadata(null, OnRenderWindowChanged));

        public PropertyType RenderWindow
        {
            get { return (PropertyType)GetValue(RenderWindowProperty); }
            set { SetValue(RenderWindowProperty, value); }
        }

        private static void OnRenderWindowChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            var control = (WPFControl)dependencyObject;
        }
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.