C# 作为网格的层次结构 我有层次结构:

C# 作为网格的层次结构 我有层次结构:,c#,wpf,xaml,mvvm,hierarchy,C#,Wpf,Xaml,Mvvm,Hierarchy,或此处的图像:freeimagehosting.net/uploads/9d438f52e7.png 问题: 如何仅在左列(参数名称)中缩进。 大概是这样的: Param1 -Control---- Param2 -Control---- Complex1 Sub Param1 -Control---- Sub Param2 -Control---- 或此处的图像:freemagehosting.net/uploads/4ab3045b75.pn

或此处的图像:freeimagehosting.net/uploads/9d438f52e7.png

问题: 如何仅在左列(参数名称)中缩进。 大概是这样的:

Param1         -Control----
Param2         -Control----
Complex1
  Sub Param1   -Control----
  Sub Param2   -Control----
或此处的图像:freemagehosting.net/uploads/4ab3045b75.png


很抱歉,我无法添加URL和图像:(

据我所知,此任务没有简单的决定,因为视图模型应提供有关层次结构中节点级别的信息。如果为视图模型提供级别,我可以使用

也很有趣

<Window.Resources>
    <DataTemplate DataType="{x:Type pc:Parameter}">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Label Grid.Column="0" Content="{Binding Name}"/>
            <ContentPresenter Grid.Column="1" Content="{Binding Value}"/>
        </Grid>
    </DataTemplate>

    <DataTemplate DataType="{x:Type pc:ComplexParameter}">
        <StackPanel>
            <Label Content="{Binding Name}"/>
            <ContentControl Margin="18,0,0,0" Content="{Binding Value}"/>
        </StackPanel>
    </DataTemplate>

    <DataTemplate DataType="{x:Type pc:ComplexValue}">
        <ItemsControl ItemsSource="{Binding Parameters}"/>
    </DataTemplate>

    <DataTemplate DataType="{x:Type pc:StringValue}">
        <TextBox Text="{Binding Str}"/>
    </DataTemplate>

</Window.Resources>
Param1         -Control----
Param2         -Control----
Complex1
  Sub Param1     -Control-
  Sub Param2     -Control-
Param1         -Control----
Param2         -Control----
Complex1
  Sub Param1   -Control----
  Sub Param2   -Control----