1

我有一个DataGrid其主要目的是允许用户在其单元格中输入数据。

但是,此网格中的第一个字段应显示列表的内容。

我将如何为一列设置数据源?

编辑:我想实现这样的目标:

在此处输入图像描述

4

2 回答 2

1

除了我的评论之外,一种简单的方法是包装您的 itemssource 集合并为每个项目添加一个列表 - 使用您期望的数据。

好消息是您不必为第一列设置不同的来源,您只需绑定到新的列表属性

编辑:

我希望我有你的问题。

假设您的网格有一个 itemssource:

List<MyObject> _list;

您的 myobject 包含 Asc/Desc、GroupBy、Having、Dispplayorder 属性。

所以我会创建一个 MyObjectWrapper 并添加 Field 属性

  public class MyObjectWrapper
  {
     public MyObject WrappedOject {get;set;}
     public string Fields {get;set}
  }

你最终得到了一个新的

 List<MyObjectWrapper> _wrapperlist;

这些集合包含您需要显示的所有信息。

于 2012-10-26T13:58:44.067 回答
0

在 中指定您自己DataGridTemplateColumnDataGrid.Columns,并将 设置DataGridTemplateColumn.CellTemplate为您要放置在该列中的任何内容。

例如,如果您希望它ComboBox指向其他字段列表:

<DataGrid.Columns>
    <DataGridTemplateColumn Header="Fields">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox ItemsSource="{Binding ElementName=MyWindow, Path=DataContext.SomeCategoryList}"
                          SelectedItem="{Binding SomePropertyOnDataItemInRow}" />
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>

我正在使用一个名为SomeCategoryListthat's on的属性MyWindow.DataContext,但是您可以将绑定设置为指向存储字段列表的位置

于 2012-10-26T15:40:43.060 回答