我有一个列表,其中包含的对象,按照这种结构。这不是真正的课我的工作,但应当解释这一概念。

public class BaseType{}
public class TypeA : BaseType{}
public class TypeB: BaseType
{
    public List<TypeA> TypeAList { get; private set; }
}

列表,获取定结合是一个 List<BaseType>

XAML

<ItemsControl>
    <ItemsControl.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:TypeB}" ItemsSource = "{Binding Path=TypeAList}">
            <DataTemplate.Resources>
                <Style TargetType="TextBlock">
                    <Setter Property="FontSize" Value="18"/>
                    <Setter Property="HorizontalAlignment" Value="Center"/>
                </Style>
            </DataTemplate.Resources>
            <Grid>
                <Ellipse Fill="Gold"/>
                <StackPanel>
                    <TextBlock Margin="3,3,3,0"
         Text="{Binding Path=Description}"/>
                    <TextBlock Margin="3,0,3,7"
         Text="{Binding Path=Name}"/>
                </StackPanel>
            </Grid>
        </HierarchicalDataTemplate>
    <ItemsControl.Resources>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel></StackPanel>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

现在是什么我希望看到的是所有入全对象中发现的类型b对象的财产被显示在获取定,而不是我只看到的类型b对象,显示有的风格定义的HierarchicalDataTemplate.我用同样的数据模板中的一个树视图控制,在那里,它显示儿童的项目罚款。

  • 你可以不使用HierarchicalDataTemplate在获取定?
  • 你怎么去显示一个父子关系中的一个获取定?
有帮助吗?

解决方案

你真的需要看看模板和工作与树视图控制,或建立自己控制的工作层次的数据。

在某些情况下,你可能能够设计自己的数据的模板为一个经常项目控制的嵌套控制结合的项目,例如(伪)

<HierarchicalDataTemplate>
    <Grid DataContext="{Binding}">
        <ListBox ItemsSource="{Binding TypeAList}" />
    </Grid>
</HierarchicalDataTemplate>

没有尝试过的上述代码

控制需要知道的HierarchicalDataTemplate-在上面的例子,控制只使用它作为一个数据模板(HierarchicalDataTemplate源数据模板为简单起见,在风格和DependencyProperty的类型数据的模板)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top