This is a migrated thread and some comments may be shown as answers.

Child row not binding with hierarchical Grid

0 Answers 128 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Zeno
Top achievements
Rank 1
Zeno asked on 13 Aug 2011, 09:33 AM
HI

I m new to Telerik WPF, i m having a problem with child binding, can u plz help me out.

code:
<telerik:RadGridView x:Name="AnalysisListGridView" Grid.Column="3" Grid.Row="2"  Width="665" Height="405" RowLoaded="RadGridView1_RowLoaded"
                                 AutoGenerateColumns="False" IsReadOnly="True" VerticalAlignment="Center" HorizontalContentAlignment="Left"
                                 MinColumnWidth="20" GridLinesVisibility="Horizontal" RowHeight="33" CanUserSortColumns="True" CanUserResizeColumns="False"
                                 CanUserReorderColumns="False" CanUserFreezeColumns="False" FontSize="12" ScrollViewer.CanContentScroll="true"
                                 FontFamily="Arial" Padding="0,0,0,0" BorderBrush="#FFCBD7E3" Foreground="#FF707070" Background="#FFFFFFFF"
                                 HorizontalGridLinesBrush="#FFEEEEEE" SelectionUnit="FullRow" SelectionMode="Single" ShowGroupPanel="False"
                                 RowIndicatorVisibility="Collapsed" GroupPanelForeground="Black" AlternateRowBackground="#FFF4F4F4" telerik:Theming.Theme="Windows7"
                                 telerik:StyleManager.Theme="Windows7" BorderThickness="1" Cursor="Hand" LoadingRowDetails="AnalysisListGridView_LoadingRowDetails">
                <telerik:RadGridView.HeaderRowStyle>
                    <Style TargetType="telerik:GridViewHeaderRow">
                        <Setter Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                                    <GradientStop Color="#FFcfd7db"/>
                                    <GradientStop Color="#FFFFFFFF" Offset="1"/>
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </telerik:RadGridView.HeaderRowStyle>
                <telerik:RadGridView.ChildTableDefinitions>
                    <telerik:GridViewTableDefinition/>
                </telerik:RadGridView.ChildTableDefinitions>
 
            </telerik:RadGridView>
private void GetHistoryInfo()
{
    this.AnalysisListGridView.ItemsSource = null;
    this.AnalysisListGridView.ItemsSource = ROISync.GetOfflineAnalysisHistory(App.LoggedInUser).ListROIAnalysis.OrderByDescending(an => an.AnalysisLastUpdatedDateTime);
}
 
void RadGridView1_RowLoaded(object sender, RowLoadedEventArgs e)
{
    GridViewTableDefinition definition = new GridViewTableDefinition();
    GridViewRow row = e.Row as GridViewRow;
    ROIAnalysisDataModel analysis = e.DataElement as ROIAnalysisDataModel;
 
    if (row != null && analysis != null)
    {
        row.IsExpandable = this.HasSubordinates(analysis);
    }
}
 
private bool HasSubordinates(ROIAnalysisDataModel analysis)
{
    IEnumerable<ROIAnalysisDataModel> childDataSource = ROISync.GetOfflineAnalysisHistory(App.LoggedInUser).ListROIAnalysis.Where(a => a.ParentID != 0).OrderByDescending(an => an.AnalysisLastUpdatedDateTime);
    return (from Anlys in childDataSource where Anlys.ParentID == analysis.AnalysisID select Anlys).Any();
}
 
void AnalysisListGridView_LoadingRowDetails(object sender, GridViewRowDetailsEventArgs e)
{
 
    GridViewTableDefinition definition = new GridViewTableDefinition();
    GridViewDataControl dataControl = (GridViewDataControl)sender;
    if (dataControl.ParentRow != null && dataControl.ChildTableDefinitions.Count == 0)
    {
        int ParentID = Convert.ToInt32(((ROIDataModels.ROIAnalysisDataModel)(((Telerik.Windows.Controls.RadRowItem)(dataControl.ParentRow)).Item)).AnalysisID);
        foreach (ROIDataModels.ROIAnalysisDataModel folder in ROISync.GetOfflineAnalysisHistory(App.LoggedInUser).ListROIAnalysis)
        {
            if (folder.FileType.ToLower() == "folder" || folder.ParentID == ParentID)
            {
                definition.DataSource = null;
                definition.DataSource = ROISync.GetOfflineAnalysisHistory(App.LoggedInUser).ListROIAnalysis.Where(a => a.ParentID == folder.ParentID).OrderByDescending(an => an.AnalysisLastUpdatedDateTime);
                dataControl.ChildTableDefinitions.Add(definition);
            }
        }
    }
}
 
private void AnalysisListGridView_DataLoading(object sender, Telerik.Windows.Controls.GridView.GridViewDataLoadingEventArgs e)
{
    GridViewDataControl dataControl = (GridViewDataControl)sender;
    if (dataControl.ParentRow != null)
    {
        dataControl.ShowGroupPanel = false;
        dataControl.AutoGenerateColumns = false;
        dataControl.CanUserFreezeColumns = false;
        dataControl.IsReadOnly = true;
        dataControl.SelectionMode = System.Windows.Controls.SelectionMode.Extended;
        dataControl.IsFilteringAllowed = false;
        dataControl.ShowInsertRow = false;
        dataControl.RowIndicatorVisibility = Visibility.Collapsed;
        dataControl.ChildTableDefinitions.Clear();
        dataControl.Margin = new Thickness(0, 0, 0, 0);
        dataControl.EnableRowVirtualization = true;
        dataControl.MaxHeight = 100;
        ScrollViewer.SetVerticalScrollBarVisibility(dataControl, ScrollBarVisibility.Auto);
 
        int ParentID = Convert.ToInt32(((ROIDataModels.ROIAnalysisDataModel)(((Telerik.Windows.Controls.RadRowItem)(dataControl.ParentRow)).Item)).AnalysisID);
        GridViewTableDefinition definition = new GridViewTableDefinition();
        definition.DataSource = null;
        definition.DataSource = ROISync.GetOfflineAnalysisHistory(App.LoggedInUser).ListROIAnalysis.Where(a => a.ParentID == ParentID).OrderByDescending(an => an.AnalysisLastUpdatedDateTime);
        //dataControl.ChildTableDefinitions.Clear();
        dataControl.ChildTableDefinitions.Add(definition);
    }
}


note:
Is there any folder structure options available there in wpf,
screenshot attached is the mockup for Folder Structure.



Thanks
Zeno J S

No answers yet. Maybe you can help?

Tags
GridView
Asked by
Zeno
Top achievements
Rank 1
Share this question
or