Это странное поведение, которое я наблюдаю из XamDataGrid.
Я установил параметры FieldLayout и FieldLayout в файле xaml и назначаю данные в коде позади.
<igDP:XamDataGrid Margin="10,42,10,10" Theme="Metro" x:Name="DGStudent" BorderThickness="0,2,0,0" ScrollingMode="Immediate" GroupByAreaLocation="None" BorderBrush="#FF00AADE" Focusable="True">
<igDP:XamDataGrid.Resources>
<Style TargetType="{x:Type igDP:CellValuePresenter}" x:Key="CheckBoxStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
<CheckBox Name="chkIsStudentSelected" Tag="{Binding Path=DataItem.ID}" IsChecked="{Binding Path=DataItem.IsSelected}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</igDP:XamDataGrid.Resources>
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.Settings>
<igDP:FieldLayoutSettings />
</igDP:FieldLayout.Settings>
<igDP:Field Name="IsSelected" Label="" Width="30">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False" AllowGroupBy="False" AllowHiding="Never" FilterClearButtonVisibility="Hidden" AllowRecordFiltering="False" AllowResize="True" CellValuePresenterStyle="{StaticResource CheckBoxStyle}" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="ID" Label="ID">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False"/>
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="Student_Name" Label="Student Name">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False" Width="400"/>
</igDP:Field.Settings>
</igDP:Field>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings />
</igDP:XamDataGrid.FieldLayoutSettings>
<igDP:XamDataGrid.ViewSettings>
<igDP:GridViewSettings/>
</igDP:XamDataGrid.ViewSettings>
<igDP:XamDataGrid.FieldSettings>
<igDP:FieldSettings AllowRecordFiltering="True" FilterClearButtonVisibility="Hidden" />
</igDP:XamDataGrid.FieldSettings>
</igDP:XamDataGrid>
DataSet Binding:
//Data first query out with column and data and assign into Data Set.
//Sample sql I query.
sql = SELECT Student_Name,id from student
//Then, I programmatically add in a new column 'IsSelected'
DataColumn newCol = new DataColumn();
newCol.ColumnName = "IsSelected";
newCol.DataType = typeof(bool);
newCol.DefaultValue = false;
mDSClient.Tables[0].Columns.Add(newCol);
//Then I assign this data set to XamDataGrid
DG.DataSource = DS.Tables[0].DefaultView;
Проблема в том, что первая загрузка всей формы выглядит хорошо и красиво. Но когда я просто снова запрашиваю данные и снова назначаю набор данных XamDataGrid (без перезагрузки всей формы). Код настройки FieldLayout, который я установил в xaml, не работает вообще. Похоже, что просто используются все значения по умолчанию из DataSet (я вижу это по ширине столбца и расположению столбца, плюс стиль флажка не работает). @. @