2016-04-26 2 views
0

У меня есть прикрепленное свойство, и я хочу привязать его к CheckBox.IsCheckedProperty.Как связать пользовательское прикрепленное свойство с CheckBox.IsChekedProperty в коде?

public static object GetIsCheckedState(DependencyObject obj) 
    { 
     return (object)obj.GetValue(IsCheckedStateProperty); 
    } 

    public static void SetIsCheckedState(DependencyObject obj, object value) 
    { 
     obj.SetValue(IsCheckedStateProperty, value); 
    } 

    // Using a DependencyProperty as the backing store for IsCheckedState. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty IsCheckedStateProperty = 
     DependencyProperty.RegisterAttached("IsCheckedState", typeof(object), typeof(GridCellCheckBoxRenderer), new PropertyMetadata(null,OnIsCheckedStateChanged)); 

    private static void OnIsCheckedStateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     var checkBox = d as CheckBox; 
     checkBox.IsChecked = (bool?)e.NewValue; 
    } 
uiElement.SetBinding(CheckBox.IsCheckedProperty, new Binding() { Path = new PropertyPath("IsCheckedState"), Source = uiElement}); 

Правильный способ привязать прикрепленное свойство, как указано выше, в UWP?

+0

является UIElement является контролем флажка? – Archana

+0

Если да, то uiElement.SetBinding (CheckBox.IsCheckedProperty, новый Binding() {Path = new PropertyPath ("IsCheckedState"), Source = uiElement}) неверен. Вы предоставили source = uielement, который имеет флажок, который не имеет свойства IsCheckedState, если вы не указали свой DependencyProperty в подклассе флажка. Пожалуйста, объясните свой вариант использования. Почтовые индексы, которые необходимы – Archana

+0

Да. В приведенном выше коде uiElement является CheckBox Control. Как я могу привязать свое прикрепленное свойство к объекту CheckBox.IsChecked в двухстороннем режиме? – Smirti

ответ

-1

Я не понимаю, что такое ваш usecase? Вы можете установить attachedProperty в XAML и привязать его к какому-то источнику:

<Checkbox attProp:AttachedPropertiesClassName.AttachedProperty="<your binding>" /> 
+0

как это сделать в коде позади? – Smirti

Смежные вопросы