Ich habe ein MultiBinding
wie folgt definiert:Verwendung in Ressourcen Bindung ohne Stile
<MultiBinding StringFormat="{0}_{1}">
<Binding Path="..." />
<Binding Path="..." />
</MultiBinding>
Ich brauche es an mehreren Stellen zu verwenden, und will es in meinen Ressourcen zu definieren, wie:
<MultiBinding x:Name="MyDefaultBinding" StringFormat="...">
<!-- etc -->
</MultiBinding>
Allerdings kann ich jetzt nicht herausfinden, wie man es benutzt. Ich habe versucht, ein StaticResource
wie:
<TextBlock Text="{StaticResource MyDefaultBinding}"
Style="{StaticResource SomeOtherStyle}" />
Dies gab mir einen Compiler-Fehler: „Ungültige Ressourcentyp: erwartete Typ‚String‘, tatsächliche Typ‚Multibinding‘.“.
Als ich versuchte, es den Zugriff auf eine mit Binding
wie:
<TextBlock Text="{Binding Source={StaticResource MyDefaultBinding}}"
Style="{StaticResource SomeOtherStyle}" />
Es kompiliert, aber der Text in der TextBlock
zur Laufzeit wird auf „System.Windows.Data.MultiBinding“ anstelle des Satzes erwarteter Wert.
Ich habe Vorschläge gesehen, die das Einbetten der MultiBinding
in eine Style
vorschlagen, jedoch habe ich bereits andere freigegebene Stile auf den Steuerelementen definiert, wo ich die Bindung verwenden muss.
Kann ich eine in Ressourcen definierte Bindung auswerten, ohne sie in einen Stil zu integrieren?
Ich glaube nicht, dass dies möglich ist. Ich denke jedoch, dass Sie die vorhandenen Stile mit "BaseOn" in Ihrem neuen Stil erweitern können. Auf diese Weise haben Sie einen Stil mit dem Binding und einen ohne den Style immer nur einmal codiert. – wkl