0
我並不都熟悉標記。我試圖用TreeView
來測試DataTemplate
。基本上我試圖創建一個名爲parents
的列表,向其中添加2個元素,然後創建兩個子項並將它們添加到列表中的父項之一,最後將父列表綁定到TreeView
。但我不知道如何引用p1, p2
裏面的列表。現在我想我不應該用xaml浪費我的時間,並且應該在代碼背後做到這一點。有任何想法嗎?如何使用子集合製作父元素集合
<Window.Resources>
<local:Parent Name="Parent 1" x:Key="p1"/>
<local:Parent Name="Parent 2" x:Key="p2"/>
<x:ArrayExtension Type="local:Parent" x:Key="parents">
<!-- Can't refer p1 and p2 from here :(-->
</x:ArrayExtension>
<local:Child ChildName="Child 1" Parent="{StaticResource ResourceKey=p1}"/>
<local:Child ChildName="Child 1" Parent="{StaticResource ResourceKey=p1}"/>
</Window.Resources>
<Grid>
<StackPanel VerticalAlignment="Center">
<TreeView ItemsSource="{Binding Source={StaticResource ResourceKey=p1}}" />
</StackPanel>
</Grid>
這兩個類:
public class Parent
{
public string Name { get; set; }
public IList<Child> Children { get; set; }
public Parent()
{
Children = new List<Child>();
}
}
public class Child
{
public string ChildName { get; set; }
private Parent _parent;
public Parent Parent
{
get
{
return _parent;
}
set
{
_parent = value;
if (value != null)
{
value.Children.Add(this);
}
}
}
}