GridView Data Reset When RadPane Docked

3 posts, 1 answers
  1. Raymond
    Raymond avatar
    65 posts
    Member since:
    Oct 2013

    Posted 04 Apr 2014 Link to this post

    I have a RadGridView hosted with a RadPane.  The GridView uses a row style to highlight those rows where "IsSelected" is true however whenever any panes are added to the RadPaneGroup or the docking of any Pane (including the pane with the GridView) is changed, all of the "Selected" checkboxes are set to False and the formatting is lost.

    Selecting another record from the master grid then selecting the original record resets the formatting.

    The following defines the DocumentHost, RadPaneGroups and RadPanes;

    <telerik:RadDocking Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Name="rdContent"
        Margin="5,2"
        MaxWidth="5000"
        MaxHeight="5000"
        telerik:StyleManager.Theme="Office_Blue">
         
        <telerik:RadDocking.DocumentHost>
            <telerik:RadSplitContainer x:Name="rcsContent" InitialPosition="DockedLeft">
                <telerik:RadPaneGroup x:Name="rpgContent">
                    <telerik:RadPane x:Name="rpProcesses" Header="Well Processes">
                        <telerik:RadGridView Name="gvProcesses" RowStyle="{StaticResource SelectedGrid}"
                            Margin="5,2"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Stretch"
                            telerik:StyleManager.Theme="Office_Blue"
                            AutoGenerateColumns="False"
                            ShowColumnFooters="False"
                            ShowGroupFooters="False"
                            ShowGroupPanel="False"
                            RowIndicatorVisibility="Collapsed"
                            ItemsSource="{Binding}"
                            DataLoadMode="Synchronous"
                            CanUserDeleteRows="False"
                            CanUserInsertRows="False"
                            ToolTip="Select the Processes associated with the Well Stage record"
                            UseLayoutRounding="True"
                            Visibility="Visible"
                            MinHeight="100"
                            MaxHeight="250">
     
                            <telerik:RadGridView.Resources>
                                <Style TargetType="ListBox">
                                    <Setter Property="MaxHeight" Value="400" />
                                </Style>
                            </telerik:RadGridView.Resources>
     
                            <telerik:RadGridView.Columns>
                                <telerik:GridViewCheckBoxColumn Header="Active" UniqueName="IsActive" DataMemberBinding="{Binding Path=IsActive}" IsReadOnly="True" Width="auto" TextAlignment="Center">
                                    <telerik:GridViewCheckBoxColumn.CellStyle>
                                        <Style TargetType="telerik:GridViewCell">
                                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                                        </Style>
                                    </telerik:GridViewCheckBoxColumn.CellStyle>
                                </telerik:GridViewCheckBoxColumn>
     
                                <telerik:GridViewDataColumn Header="Select" UniqueName="Selected" DataMemberBinding="{Binding Path=IsSelected}" IsReadOnly="False" Width="auto">
                                    <telerik:GridViewDataColumn.CellStyle>
                                        <Style TargetType="telerik:GridViewCell">
                                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                                        </Style>
                                    </telerik:GridViewDataColumn.CellStyle>
     
                                    <!-- See http://www.telerik.com/help/wpf/gridview-checkbox-column-clicks.html for info on enabling single-click editing of checkboxes -->
                                    <telerik:GridViewDataColumn.CellTemplate>
                                        <DataTemplate>
                                            <CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" telerik:StyleManager.Theme="Office_Blue" Click="Process_Clicked" />
                                        </DataTemplate>
                                    </telerik:GridViewDataColumn.CellTemplate>
                                </telerik:GridViewDataColumn>
     
                                <telerik:GridViewDataColumn Header="Process" UniqueName="Process" DataMemberBinding="{Binding Path=Process}" IsReadOnly="True" Width="auto" />
     
                                <telerik:GridViewDataColumn Header="Notes" UniqueName="Notes" IsReadOnly="True" Width="*">
                                    <telerik:GridViewDataColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding Path=Notes, Converter={StaticResource RemoveNewLine}}" HorizontalAlignment="Left" TextTrimming="CharacterEllipsis" />
                                        </DataTemplate>
                                    </telerik:GridViewDataColumn.CellTemplate>
                                </telerik:GridViewDataColumn>
                            </telerik:RadGridView.Columns>
                        </telerik:RadGridView>
                    </telerik:RadPane>
                     
                    <telerik:RadPane x:Name="rpRigClasses" Header="Rig Classes">
                        <telerik:RadGridView Name="gvRigClasses" RowStyle="{StaticResource SelectedGrid}"
                            Margin="5,2"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Stretch"
                            telerik:StyleManager.Theme="Office_Blue"
                            AutoGenerateColumns="False"
                            ShowColumnFooters="False"
                            ShowGroupFooters="False"
                            ShowGroupPanel="False"
                            RowIndicatorVisibility="Collapsed"
                            ItemsSource="{Binding}"
                            DataLoadMode="Synchronous"
                            CanUserDeleteRows="False"
                            CanUserInsertRows="False"
                            ToolTip="Select a Project record to edit"
                            UseLayoutRounding="True"
                            Visibility="Visible"
                            MinHeight="100"
                            MaxHeight="250">
     
                            <telerik:RadGridView.Resources>
                                <Style TargetType="ListBox">
                                    <Setter Property="MaxHeight" Value="400" />
                                </Style>
                            </telerik:RadGridView.Resources>
     
                            <telerik:RadGridView.Columns>
                                <telerik:GridViewCheckBoxColumn Header="Active" UniqueName="IsActive" DataMemberBinding="{Binding Path=IsActive}" IsReadOnly="True" Width="auto" TextAlignment="Center">
                                    <telerik:GridViewCheckBoxColumn.CellStyle>
                                        <Style TargetType="telerik:GridViewCell">
                                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                                        </Style>
                                    </telerik:GridViewCheckBoxColumn.CellStyle>
                                </telerik:GridViewCheckBoxColumn>
     
                                <telerik:GridViewDataColumn Header="Select" UniqueName="Selected" DataMemberBinding="{Binding Path=IsSelected}" IsReadOnly="False" Width="auto">
                                    <telerik:GridViewDataColumn.CellStyle>
                                        <Style TargetType="telerik:GridViewCell">
                                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                                        </Style>
                                    </telerik:GridViewDataColumn.CellStyle>
     
                                    <!-- See http://www.telerik.com/help/wpf/gridview-checkbox-column-clicks.html for info on enabling single-click editing of checkboxes -->
                                    <telerik:GridViewDataColumn.CellTemplate>
                                        <DataTemplate>
                                            <CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" telerik:StyleManager.Theme="Office_Blue" Click="RigClass_Clicked" />
                                        </DataTemplate>
                                    </telerik:GridViewDataColumn.CellTemplate>
                                </telerik:GridViewDataColumn>
     
                                <telerik:GridViewDataColumn Header="Rig Class" UniqueName="RigClass" DataMemberBinding="{Binding Path=RigClass}" IsReadOnly="True" Width="auto" />
     
                                <telerik:GridViewDataColumn Header="Notes" UniqueName="Notes" IsReadOnly="True" Width="*">
                                    <telerik:GridViewDataColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding Path=Notes, Converter={StaticResource RemoveNewLine}}" HorizontalAlignment="Left" TextTrimming="CharacterEllipsis" />
                                        </DataTemplate>
                                    </telerik:GridViewDataColumn.CellTemplate>
                                </telerik:GridViewDataColumn>
                            </telerik:RadGridView.Columns>
                        </telerik:RadGridView>
                    </telerik:RadPane>
                </telerik:RadPaneGroup>
            </telerik:RadSplitContainer>
        </telerik:RadDocking.DocumentHost>
    </telerik:RadDocking>

    The attached shows;
    1. The initial display when a record is loaded.
    2. The screen after docking to the right.
    3. The screen after re-selecting the record.

    The grid is bound to an ObservableCollection so I'm not sure why the "Selected" values would change.

    Does anyone have any suggestions?

  2. Answer
    Yoan
    Admin
    Yoan avatar
    1215 posts

    Posted 07 Apr 2014 Link to this post

    Hello Raymond,

    Actually, this is the expected behavior. When the Pane is dragged GridView gets unloaded and then loaded again. Please try the approach from this forum thread and let me know if it works for you.


    Regards,
    Yoan
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  3. Raymond
    Raymond avatar
    65 posts
    Member since:
    Oct 2013

    Posted 04 May 2014 in reply to Yoan Link to this post

    Hi Yoan,

    Sorry to take so long in getting back to you on this - I have been working on some other aspects of the code.

    Setting the DataContext to the RadPane rather than the GridView appears to have corrected the problem.

    Thanks for your help...
Back to Top