2016-04-26 8 views
0

Ich habe die angefügte Eigenschaft, und ich möchte dies an CheckBox.IsCheckedProperty binden.Wie gebundene benutzerdefinierte Eigenschaft an CheckBox.IsChekedProperty im Code hinter?

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}); 

Ist der richtige Weg, die angehängte Eigenschaft wie oben in UWP zu binden?

+0

ist UIElement Checkbox Kontrolle ist? – Archana

+0

Wenn dies der Fall ist, ist uiElement.SetBinding (CheckBox.IsCheckedProperty, new Binding() {Path = neuer PropertyPath ("IsCheckedState"), Source = uiElement}) falsch. Sie haben source = uielement angegeben, das ein Kontrollkästchen ist, das keine IsCheckedState-Eigenschaft besitzt, es sei denn, Sie haben DependencyProperty in der Unterklasse des Kontrollkästchens deklariert. Bitte erläutern Sie Ihren Anwendungsfall. Erforderliche Postleitzahlen – Archana

+0

Ja. Im obigen Code ist uiElement CheckBox Control. Wie kann ich meine angehängte Eigenschaft an die CheckBox.IsChecked-Eigenschaft im Zwei-Wege-Modus binden? – Smirti

Antwort

-1

Ich verstehe nicht, was Ihr Anwendungsfall ist? Sie können eine attachedProperty im XAML festgelegt und es zu einer Quelle binden:

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

Wie geht das im Code dahinter? – Smirti

Verwandte Themen