簡體   English   中英

將數據模板元素綁定到子類的屬性

[英]Binding Data Template element to property on sub-class

我有一個類,出於實驗目的,將其稱為foo(),將另一個類稱為bar()
我在xaml中定義了foo()類的數據模板,但是foo()的屬性之一是bar()對象,這樣

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

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

我希望我的foo數據模板顯示bar的Description屬性。 我已經嘗試過簡單的<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元素的擴展器頭中

您的“ AccountNumber”成員(類型為“ Field”)只是一個字段,而不是屬性。 您只能綁定到屬性。 給它一個吸氣和塞特,它會開始工作。

嘗試這個

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

希望這會工作..祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM