C# 用wpf创建二叉树
我正在尝试在wpf中创建一个二叉树,它将如下所示: 所以,我创建了三个类——Node(抽象)、OneTypeNode和TwoTypeNode(顺便说一句,MVVM在这里很重要)。 每个节点也都引用他的两个儿子。 在xaml中,它看起来是这样的:C# 用wpf创建二叉树,c#,wpf,xaml,mvvm,icsharpcode,C#,Wpf,Xaml,Mvvm,Icsharpcode,我正在尝试在wpf中创建一个二叉树,它将如下所示: 所以,我创建了三个类——Node(抽象)、OneTypeNode和TwoTypeNode(顺便说一句,MVVM在这里很重要)。 每个节点也都引用他的两个儿子。 在xaml中,它看起来是这样的: <StackPanel> <Grid ShowGridLines="False"> <Grid.ColumnDefinitions>
<StackPanel>
<Grid ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Column="1" Grid.Row="0" x:Name="CircleFather" CornerRadius="5"
Width="40"
Height="40"
Background="DarkKhaki"
Margin="0 20 0 0"
BorderThickness="1" >
</Border>
<ContentControl Grid.Row="2" Grid.Column="0" Content="{Binding RightSon}" Margin="10"></ContentControl>
<ContentControl Grid.Row="2" Grid.Column="2" Content="{Binding LeftSon}" Margin="10"></ContentControl>
</Grid>
<Line ></Line>
</StackPanel>
这实际上让我递归地创建了子!
但有两个主要问题:首先是大小,我无法控制网格的大小,因为我不知道每边会有多少个儿子。另外,我不知道如何在每两个节点之间创建线。有什么想法吗?
非常感谢 你可能想看看,我认为他们已经做了类似的事情。他们有非常好的东西,但它与我想要的结构不同:(无论如何,谢谢!