Silverlight 4 DataGrid如何使嵌套的数据网格数据水平显示而不是垂直显示

时间:2011-03-22 21:20:39

标签: silverlight datagrid

我有一组具有嵌套对象集合的对象。我希望我的数据网格中的嵌套集合能够水平显示嵌套数据网格内部,如果可能的话。这是我的课程:

public class Details
{
    public string Customer {get;set;}
    public List<Type> Types { get; set;}
}
public class Type
{
    public string typeId{get;set;}
}

当然它们实际上是ObservableCollections,我实现了INotifyPropertyChange,但这只是我的类的快速骨架,以获得主要观点。

如果我能像这样显示它会很好:

  Details Customer      
                    Types[0] typeId    Types[1] typeId  ....    Types[n] typeId

我希望这是有道理的。基本上我想要的类型水平显示id。那么我怎样才能将Types集合显示为列而不是行?我本质上想要将另一个集合添加到Type并将数据网格嵌套到那个集合中,但这些集合不必是水平的,只是这个。任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

RowDetailsTemplate可能在这里工作:

<DataGrid>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <xzy />
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>

<xyz />将是您水平显示类型的部分。根据您的需要,您可以创建UserControl(创建public IEnumerable<Type> Types { get; set; },将Types成员绑定到它并在那里实现显示逻辑),StackPanel或简单的TextBlock,您可以在其中连接您的类型 - 名。