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.

War es hilfreich?

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

verwenden
{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}" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top