簡體   English   中英

父類列表中的數據綁定ListView子類屬性

[英]Data Binding ListView child class properties from a list of parent class

我在通過父類列表顯示子類屬性時遇到問題。

XAML

<ListView Grid.Row="0" Grid.RowSpan="4" Grid.Column="0" x:Name="lvTest" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Auto" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Auto" Width="630" Height="270">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Index" DisplayMemberBinding="{Binding Path=index}" Width="100" />
            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=c.name}" Width="100" />
            <GridViewColumn Header="age" DisplayMemberBinding="{Binding Path=c.age}" Width="100" />
        </GridView>
    </ListView.View>
</ListView>

背后的代碼

public partial class MainWindow : Window
{
    List<parent> parentList;

    public MainWindow()
    {
        InitializeComponent();

        GenerateList();

        lvTest.ItemsSource = parentList;
    }

    private void GenerateList()
    {
        parentList = new List<parent>();

        for (int i = 0; i < 10; i++)
        {
            parent p = new parent();
            p.index = i;

            child c = new child();
            c.name = "Name_" + (i + 1).ToString();
            c.age = i;

            parentList.Add(p);
        }
    }
}

public class parent
{
    public int index { get; set; }
    public child c { get; set; }
}

public class child
{
    public string name { get; set; }
    public int age { get; set; }
}

我無法顯示類的“名稱”“年齡”屬性,但是訪問類的index屬性沒有問題。

有人知道該怎么做嗎?

看來您忘記了在parent對象中“保存”您的child實例:

child c = new child();
c.name = "Name_" + (i + 1).ToString();
c.age = i;

p.c = c; // THIS!

暫無
暫無

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

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