我正在WPF 4/C#中工作。我有兩個自定義類:WPF - 綁定到另一個對象內的自定義對象的屬性
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";
}
}
從XAML內部,我想綁定到這些類的屬性。以下是我有:
<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>
(這裏<my:c2 ../>
實例化C2級。)第一個TextBlock的結合的作品。第二個不是。爲什麼我不能綁定到obj1上的屬性?我似乎只能綁定到直系班的屬性。我想能夠綁定到其他東西,如屬於直接類或子類的屬性的數組中的元素,如上所示。我錯過了什麼?如果我使用get/set將obj1.prop1包裝在直接類的另一個屬性中,它就可以工作。但我不想這樣做,特別是如果我開始使用數組,我不想將每個元素包裝到一個單獨的屬性!
你打敗了它! – poindexter12 2010-12-16 00:09:30
我試圖綁定到一個屬性,它恰好在一個子對象上。發生問題是因爲子對象是一個字段,並且沒有辦法「綁定」它來獲取該屬性? – mawrya 2010-12-16 00:45:13
@mawrya子對象本身也需要是一個屬性,即'prop1'是'obj1'上的一個屬性,但是'obj1'本身不是''c2'類的屬性。 – 2010-12-16 02:04:57