myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » ItemsControl: Template Datenbindung an Property ausserhalb der Source
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

ItemsControl: Template Datenbindung an Property ausserhalb der Source

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
BJA-CH BJA-CH ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.02.2017
Beiträge: 57
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Schwyz, CH


BJA-CH ist offline MSN-Passport-Profil von BJA-CH anzeigen

ItemsControl: Template Datenbindung an Property ausserhalb der Source

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zäme
Ich habe ein ItemsControl, bei dem ich die darzustellenden Daten in einem ObservableControl<> übergebe.
Nun möchte ich aber, einige Darstellungsattribute, wie Strichdicke, Farbe usw. durch den Benutzer steuern lassen. Dazu habe ich in der aufrufenden MVVM-Klasse die entsprechenden Properties bereitgestellt.
Nun möchte ich eine Datenbindung in einige ausgewählte DataTemplate machen. Ich denke das müsste mit RelativeSource FindAncestor zu machen sein, doch das bekomme ich einfach nicht hin.
Ich habe es bis jetzt wie folgt versucht:

XML-Code:
        <DataTemplate DataType="{x:Type kli:itemsSternbild}">
            <Line Stroke="{Binding Path=SternbildColor, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type vm:MainWindowViewModel}}}" StrokeThickness="{Binding Path=Thickness}"
                  X1="{Binding Path=X1}" Y1="{Binding Path=Y1}" X2="{Binding Path=X2}" Y2="{Binding Path=Y2}"
                  Visibility="{Binding ElementName=starBilderAnzeige , Path=IsChecked, Converter={StaticResource boolToVisibilityConverter}}"
                  ToolTipService.IsEnabled="{Binding ElementName=sternToolTip, Path=IsChecked}"
>

wobei "SternbildColor" das Property wäre und dieses liegt in der Hauptdatei "vm:MainWindowViewModel".

Weiss da jemand Rat??
Neuer Beitrag 03.02.2019 11:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MarsStein MarsStein ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3191.gif


Dabei seit: 27.06.2006
Beiträge: 3.160
Entwicklungsumgebung: VS 2013, MonoDevelop
Herkunft: Trier -> München


MarsStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

über RelativeSource FindAncestor fndest Du für gewöhnlich Controls, nicht aber die ViewModels.
Das ViewModel müsste aber als DataContext im Control (bei Dir: im Window, wenn Deine Bezeichnungen stimmen) zu finden sein.
Das Binding müsste also so aussehen (beachte den Path und den Ancestortype):

XML-Code:
<Line Stroke="{Binding Path=DataContext.SternbildColor, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}"/>

Gruß, MarsStein
Neuer Beitrag 03.02.2019 22:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BJA-CH BJA-CH ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.02.2017
Beiträge: 57
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Schwyz, CH

Themenstarter Thema begonnen von BJA-CH

BJA-CH ist offline MSN-Passport-Profil von BJA-CH anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo MarsStein
Super, habe ich verstanden und hat auch geklappt!
Besten Dank
Neuer Beitrag 04.02.2019 12:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Jahr.
Der letzte Beitrag ist älter als ein Jahr.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 22.10.2020 17:00