XamDataGrid - 如何从代码后面访问字段

时间:2014-05-22 15:19:11

标签: c# wpf mvvm infragistics

我有一个XamDataGrid,正在点击按钮时填充。

<Expander Header="{Binding Path=Tag, ElementName=EditGridExpanderBar}" Tag="Edit Grid" Visibility="Hidden"  Height="Auto" Name="EditGridExpanderBar" FontWeight="Bold" Background="#6688A4" Margin="0,0,5,3" Padding="3,0,0,0" Foreground="White">
    <igDP:XamDataGrid Name="EditGrid">
    </igDP:XamDataGrid>
</Expander>

以下是填充XamDataGrid的代码。

private void EditAllocations_Click (object sender, RoutedEventArgs e)
{
    ObservableCollection<LobAllocation> ds = _controller.PlanitariumModel.Entity.LobAllocations;

    if (editGridClickCheck((Button)sender, ds.Count))
    {
        EditGrid.DataSource = ds;
    }
}

此处,实体具有一些MetaData字段,这些字段与Grid中的实际列一起显示。我想手动隐藏这些字段。

有关如何执行此操作的任何指示?

1 个答案:

答案 0 :(得分:1)

您无法隐藏特定字段。你可以做的是关闭自动列生成,它基于datagrid绑定到的类的公共属性。 此外,您需要指定应在数据网格中显示哪些属性。

试试这样:

<igDP:XamDataGrid Name="EditGrid">
  <igDP:XamDataGrid.FieldLayouts>
    <igDP:FieldLayout>
      <igDP:Field Name="EntityProperty-1" Label="Property1" />
      <igDP:Field Name="EntityProperty-2" Label="Property2" />
   </igDP:FieldLayout>
 </igDP:XamDataGrid.FieldLayouts>

 <igDP:XamDataGrid.FieldLayoutSettings>
   <igDP:FieldLayoutSettings AutoGenerateFields="False"/>
 </igDP:XamDataGrid.FieldLayoutSettings>
</igDP:XamDataGrid>

<igDP:FieldLayout>块中,您需要指定要呈现的Datagrid的列。 使用以下块,您可以禁用列的自动生成。

<igDP:XamDataGrid.FieldLayoutSettings>
   <igDP:FieldLayoutSettings AutoGenerateFields="False"/>
 </igDP:XamDataGrid.FieldLayoutSettings>