Как привязать XamDataGrid к набору данных в WPF4?

#wpf #dataset #field #infragistics #xamdatagrid

#wpf #набор данных #поле #инфраструктура #xamdatagrid

Вопрос:

Я разрабатываю приложение WPF4 и использую DataSet для заполнения XamDataGrid (из Infragistics). Вот xaml для datagrid:

 <igDP:XamDataGrid AutoFit="True" BindToSampleData="False" Grid.Column="1" HorizontalAlignment="Center" HorizontalContentAlignment="Center" IsUndoEnabled="True" Margin="0,0,0,40" Name="xamDataGridOrganization" SortRecordsByDataType="True" UndoLimit="2" UseLayoutRounding="True" VerticalAlignment="Bottom" VerticalContentAlignment="Center" Padding="0" Panel.ZIndex="1" MaxWidth="Infinity">
        <igDP:XamDataGrid.FieldSettings>
            <igDP:FieldSettings AllowEdit="False" AllowGroupBy="True"  AllowRecordFiltering="True" />
        </igDP:XamDataGrid.FieldSettings>
        <igDP:XamDataGrid.FieldLayouts>
            <igDP:FieldLayout>
                <igDP:FieldLayout.Fields>
                    <igDP:Field Name="Id" Label="Id"/>
                    <igDP:Field Name="OrganizationName" Label="Organization" />
                    <igDP:Field Name="EmailId" Label="Email Address" />
                </igDP:FieldLayout.Fields>
            </igDP:FieldLayout>
        </igDP:XamDataGrid.FieldLayouts>
    </igDP:XamDataGrid>
  

Теперь код, который я использую для заполнения XamDataGrid, является :

 var adcg = new OrganizationGridTableAdapter();
        AddressBookDataSet dbcg = new AddressBookDataSet();
        adcg.Fill(dbcg.OrganizationGrid);
        //xamDataGridIndividual.DataContext = dbc.Individual;
        xamDataGridOrganization.DataSource = dbcg.OrganizationGrid.DefaultView;
  

Теперь в my DataTable Organization GRID есть поля:

  1. ID
  2. Название организации
  3. Идентификатор электронной почты

и некоторые другие поля ..

Я хочу изменить текст в заголовке и некоторые другие свойства (width, text-size) .. как я могу это сделать?

Как вы можете видеть в коде XAML, я определил FieldLayout с точно такими же именами полей, могу ли я привязать столбец из моего DataTable к определенному мной конкретному полю?

Ответ №1:

Вы уже меняете свой заголовок с помощью Label.

  <igDP:Field Name="Id" Label="Id"/> 
  

В приведенном выше xaml вы уже видите привязку к «Id» в вашем источнике данных. Когда он привязывается, он привязывается по атрибуту Name.

Вы можете использовать настройки полей для изменения внешнего вида с помощью стилей:

 <igDP:Field.Settings>
    <igDP:FieldSettings 
        EditorType="{x:Type Editors:XamDateTimeEditor}"
        EditorStyle="{StaticResource ResourceKey=styleDateTime}">
    </igDP:FieldSettings>
</igDP:Field.Settings>
  

и стиль, являющийся:

 <Style x:Key="styleDateTime" TargetType="{x:Type Editors:XamDateTimeEditor}">
    <Setter Property="Format" Value="dd-MMM-yyyy HH:mm:ss" />
    <Setter Property="ValueType" Value="{x:Type System:DateTime}"/>
</Style>
  

выполните поиск в инфраструктуре для XamDataGrid.

Эта ссылка может помочь

Комментарии:

1. Момент, на который следует обратить внимание, или РЕАЛЬНАЯ ПРОБЛЕМА с моим кодом заключалась в том, что я не создал поля для всех столбцов DATATABLE!! Таким образом, он игнорировал мои поля и генерировал их все автоматически!