[英]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.