WPF - Bindung einer Eigenschaft ein benutzerdefiniertes Objekt, das innerhalb eines anderen Objekts

Arbeite ich in WPF 4 /C#. Ich habe zwei benutzerdefinierte Klassen:

public class c1 {
    public string prop1 { get; set; }

    public c1() {
        prop1 = "world";
    }
}

public class c2 {
    public string prop1 { get; set; }
    public c1 obj1 = new c1();

    public c2() {
        prop1 = "hello";
    }
}

Innerhalb von XAML, ich möchte zu binden, um die Eigenschaften dieser Klassen. Hier ist, was ich habe:

<Window.Resources>
    <my:c2 x:Key="c2"/>
</Window.Resources>
<StackPanel>
    <TextBlock DataContext="{DynamicResource c2}" Text="{Binding prop1}"/>
    <TextBlock DataContext="{DynamicResource c2}" Text="{Binding obj1.prop1}"/>
</StackPanel>

(Hier die <my:c2 ../> erzeugt ein Objekt der Klasse c2.) Der erste TextBlock-Bindung funktioniert. Die zweite nicht. Warum kann ich nicht binden, um eine Eigenschaft auf den obj1? Ich habe nur zu sein scheinen in der Lage zu binden, um die Eigenschaften der unmittelbaren Klasse. Ich möchte in der Lage zum binden an andere Sachen wie ein element in einem array, gehört zu den unmittelbaren-Klasse oder eine Eigenschaft eines Kindes, die Klasse, wie oben gezeigt. Was bin ich? Wenn ich wickeln Sie die obj1.prop1 in einer anderen Eigenschaft der unmittelbaren Klasse mit get - /set, es funktioniert. Aber ich will nicht zu tun haben, besonders, wenn ich mit arrays, die ich nicht wollen, wickeln Sie jedes element in eine eigene Immobilie!

InformationsquelleAutor mawrya | 2010-12-16
Schreibe einen Kommentar