Laden...

Eine Property an eine Wert (welches in einem Style mittels Setter gesetzt ist) binden in Xaml

Erstellt von TripleX vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.124 Views
TripleX Themenstarter:in
328 Beiträge seit 2006
vor 14 Jahren
Eine Property an eine Wert (welches in einem Style mittels Setter gesetzt ist) binden in Xaml

Hallo Gemeinde,

ich würde gerne, wie der Betreff schon aussagt eine Property an einen Wert, welches in einem Style mittels Setter gesetzt ist, in XAML binden. Um besser zu verstehen was ich machen möchte folgt ein Beispiel dazu. Ich habe folgenden Style definiert (in der App.xaml):

        <Style x:Key="BubbleStyle" TargetType="{x:Type Button}">
            <Setter Property="Width" Value="200"/>
            <Setter Property="Height" Value="200"/>
            <Setter Property="Template"> <--[...]--> 

Nun möchte die Höhe eines StackPanels an die Höhe welche ich oben festgelegt habe, binden.
Ich habe das ganze über einen Umweg geschafft:

        public double BubbleHeight
        {
            get
            {
                return ((Style)FindResource("BubbleStyle")).Setters.Cast<Setter>()
                                                                   .Where(x => x.Property.Name.Equals("Height"))
                                                                   .Select(x => x.Value)
                                                                   .Cast<double>()
                                                                   .FirstOrDefault();
            }
        }

und dann binde ich die Höhe des StackPanels an diese Property.

Nun wollte ich fragen ob man es auch ohne den Umweg zu machen direkt in Xaml festlegen kann?

MfG TripleX

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck

D
233 Beiträge seit 2008
vor 14 Jahren
TripleX Themenstarter:in
328 Beiträge seit 2006
vor 14 Jahren

@D-eath,

also so wirklich bringt mir das auch nicht weiter. Ich könnte ElementName verwenden, wenn ich bereits ein Element hätte welchen diesen Style verwendet - dass habe ich aber nicht, denn diese werden erst später dynamisch erzeugt.

Also ich hab mir mal über den Wizard beim DataBinding folgendes zusammengeklickt:

            <TextBlock Text="{Binding Source={StaticResource BubbleStyle}, Path=TargetType.Height}" />

Aber dass funktioniert nicht, denn es wird kein Text angezeigt. Dieses TargetType.Height kommt mir sowieso ein wenig komisch vor, habe dass mal in verschiedene andere Varianten geändert, aber ich kriege es einfach nicht hin ... 🤔

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck