Die Bindung an eine benutzerdefinierte Steuerelementeigenschaft
-
25-09-2019 - |
Frage
Hallo habe ich eine individuelle Kontrolle. Diese benutzerdefinierte Steuerelement hat seine Datacontext-Set zu einer Einheit. In meiner benutzerdefinierten Kontrolle binde ich dann einige Textblocks, um verschiedene Eigenschaften dieser Entität.
Ich möchte auch einen Textblock auf eine Eigenschaft der Kontrolle der Klasse zu binden. Ich weiß nicht wollen / müssen diese Eigenschaft durch die XAML festlegen.
So etwas wie
<TextBlock Content="{Binding Path=MyControl.Property}" />
Im Moment meint es scheint, die gebundene Einheit zu versuchen, zu verwenden, diese Bindung zu lösen, anstatt meine benutzerdefinierten Steuerklasse.
Lösung
In Ihrer benutzerdefinierten Kontrolle sollten Sie eine Abhängigkeitseigenschaft mit der Eigenschaft setzen Sie binden möchten.
Auch Sie wahrscheinlich nicht wollen, den Inhalt des Textblock binden, wollen Sie den Text binden:
<TextBlock Text="{Binding Path=MyControl.Property}" />
Andere Tipps
Sie können RelativeSource
in Ihrem Binding
{Binding Path=PathToProperty, RelativeSource={RelativeSource AncestorType={x:Type MyControl}}}
Sie können auch mehr sehen in dieser Frage
Wenn der Textblock innerhalb des Control Ihrer benutzerdefinierten Kontrolle ist, dann können Sie einen DP auf das benutzerdefinierte Steuerelement erstellen und dann Vorlage binden an sie. z.
<TextBlock Text="{TemplateBinding CustomControlPropertyName}" />