2010-05-26 39 views
1
子類

我有一個類,用於實驗的緣故稱之爲富()和另一個類,稱之爲巴()
我有類Foo()中定義的數據模板我XAML,但FOO中的一個()的屬性是一個棒()對象以使得綁定數據模板元素屬性上

foo() 
{ 
    Public string Name {get; set;} 
    Public int ID {get; set;} 
    Public bar barProp {get; set;} 
} 

bar() 
{ 
    Public string Description{get; set;} 
} 

我想FOO的我的數據模板來顯示欄的說明屬性。 我已經嘗試了簡單<textblock Text="{Binding Path=barProp.Description}" />和變體無濟於事

尋求智慧,
DJ

編輯: 按照要求提供更多信息...
這裏是我的真正的類...

public class AccountRecord 
{ 
    public string Value { get; set; } 
    public string Identifier { get; set; } 
    public Field AccountNumber; 
} 
public class Field 
{ 
    public string Name{get;set;} 
    public string Value{get;set} 
} 

,這裏是用來模板他們他們XAML ...

<ListBox Margin="0,35,0,0" Name="listAccountRecords" Background="Transparent" BorderBrush="Transparent" ItemsSource="{Binding AccountRecords, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"> 
    <ListBox.ItemTemplate> 
      <DataTemplate DataType="{x:Type lib:AccountRecord}"> 
       <Expander Header="{Binding AccountNumber.Name}">        
        <ListView ItemsSource="{Binding Fields}" ItemTemplate="{DynamicResource FieldTemplate}"> 
        </ListView> 
       </Expander> 
      </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

以及確切的問題是,AccountNumber.Name值沒有出現在擴展頭的AccountRecord元素

+0

這應該工作得很好。 WPF綁定系統完全支持嵌套屬性。你看到什麼行爲?您可能需要發佈更具體的示例。 – 2010-05-26 03:50:17

+0

檢查TextBlock.DataContext屬性 - 驗證它是否設置爲Foo類型的實例。綁定似乎是正確的。 – Gishu 2010-05-26 04:11:52

+0

我已經添加了確切的案例,我正在處理 – TerrorAustralis 2010-05-26 07:05:04

回答

7

您的「AccountNumber」成員(「字段類型」)只是一個字段,而不是一個屬性。你只能綁定到屬性。給它一個getter和setter,它就會開始工作。

+0

完美!感謝這麼多的隊友,wouldnt已經注意到,一個... – TerrorAustralis 2010-05-27 00:08:13

+0

@恐怖它絕對是一個常見問題,當涉及到WPF綁定。它需要以某種方式更明顯地記錄。 – 2010-05-27 00:09:47

0

嘗試這個

<textblock Text="{Binding Path=FooObjectName.barProp.Description}" /> 

希望這將工作.. 祝您好運!

+0

感謝您的評論:)我已經嘗試過,我感到困惑時,它沒有工作,所以我覺得更險惡的東西在工作。一個更完整的例子可供您閱讀:) – TerrorAustralis 2010-05-26 07:05:46