Laden...

[wpf] Binding: Eigenschaft von der Eigenschaft

Erstellt von vbtricks vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.212 Views
vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 16 Jahren
[wpf] Binding: Eigenschaft von der Eigenschaft

Salut,

zur Anzeige einer internen Collection in einer ListBox verwende ich Data Binding. Die Vorlage für die Einträge sieht dann z.B. so aus:


<ListBox.ItemTemplate>
	<DataTemplate>
		<DockPanel>
			<Image Width="133" Height="100" Source="{Binding Path=PreviewImage}"
        Margin="2" />
		</DockPanel>
	</DataTemplate>
</ListBox.ItemTemplate>

Nun habe ich folgendes Problem: Bei einigen Fällen, hat der Objekttyp in der Kollektion eine Eigenschaft, die selbst ein Objekt einer Klasse ist. Als Beispiel:


class EintragsKlasse
{
  class EintragsEigenschaftsKlasse
  {
    public string MeineEigenschaft;
  }

  public EintragsEigenschaftsKlasse Eigenschaft;
  public string AndereEigenschaft;
}

Auf die Eigenschaft vom Typ String zuzugreifen ist mit


{Binding Path=AndereEigenschaft}

kein Problem, wie kann ich aber im auf MeineEigenschaft bei Eigenschaft zugreifen. Ich hatte gehofft, das geht mit


{Binding Path=Eigenschaft.MeineEigenschaft}

Davon war das Kompilat aber wenig beeindruckt. Es wird zwar kein Fehler geworfen, allerdings auch nichts angezeigt.

Eigentlich würde ich die Eigenschaften gern gebündelt in einer EintragsEigenschaftsKlasse gebündelt lassen und nur ungern die Eigenschaften alle in die EintragsKlasse schieben. Kann ich das trotzdem mit Binding in XAML realisieren?

Danke im Voraus,

Stefan

5.742 Beiträge seit 2007
vor 16 Jahren

Hallo vbtricks,

wenn ich das Buch vor mir richtig interpretiere, sollte es mit


{Binding Path=(Eigenschaft.MeineEigenschaft)}
//oder
{Binding Path=(Eigenschaft).(EintragsEigenschaftsKlasse.MeineEigenschaft)}

funktionieren. Letzteres führt anscheinend auch noch eine Typkonvertierung durch.

vbtricks Themenstarter:in
205 Beiträge seit 2006
vor 16 Jahren

Salut,

hm, das hat er mir beides mit der Fehlermeldung, dass er das nicht konvertieren könne, um die Ohren gehauen.

In der Fehlermeldung fand ich aber mein Stichwort Binding-Klasse:

ms-help://MS.VSExpressCC.v80/MS.NETFX30SDK.1033/cpref30/html/P_System_Windows_Data_Binding_Path.htm

Dort habe ich dann nachgeschaut und auf Grund des Kommentares dort es noch mal ohne die Klammern probiert. Plötzlich ging es, obwohl ich mir eigentlich sicher war, das so probiert zu haben, also die Variante


{Binding Path=Eigenschaft.MeineEigenschaft}

Trotzdem natürlich danke. Was ist denn das für ein Buch, nur aus Interesse?

Stefan

5.742 Beiträge seit 2007
vor 16 Jahren

Original von vbtricks
Was ist denn das für ein Buch, nur aus Interesse?

Das Buch heißt "Windows Presentation Foundation - Graphische Oberflächen entwickeln mit .Net 3.0" und ist von Dirk Frischalowski.