#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 есть поля:
- ID
- Название организации
- Идентификатор электронной почты
и некоторые другие поля ..
Я хочу изменить текст в заголовке и некоторые другие свойства (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!! Таким образом, он игнорировал мои поля и генерировал их все автоматически!