學習WPF在這裏,我試圖讓我的頭繞分層數據綁定。如何實現分層數據綁定?
這是我的情況:
public class A
{
public int Id { ... }
public IEnumerable<B> Children { ... }
}
public class B
{
public string SomeValue { ... }
}
我想用一個ItemsControl
顯示的A
集合併爲A
每次出現我想要的內部ItemsControl
顯示A.Children
。
我認爲這會做的伎倆,但是,很顯然,我有很多需要學習的...
<ItemsControl x:Name="icCollectionOfAs" ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Width="auto" Height="auto">
<TextBlock Text="{Binding Id}" />
<ItemsControl ItemsSource="{Binding Children}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding SomeValue}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然後,在代碼隱藏...
icCollectionOfAs.ItemsSource = createSomeAsWithChildBsInThem();
的結果這一切都沒有得到顯示。爲什麼?
感謝
你是在屏幕第一次顯示之前還是之後設置的? 'icCollectionOfAs.ItemsSource = createSomeAsWithChildBsInThem();' –