XamDataGrid не работает с FieldLayout, установленным в xaml - PullRequest
0 голосов
/ 07 августа 2020

Это странное поведение, которое я наблюдаю из 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 (я вижу это по ширине столбца и расположению столбца, плюс стиль флажка не работает). @. @

...