HI
I m new to Telerik WPF, i m having a problem with child binding, can u plz help me out.
code:
note:
Is there any folder structure options available there in wpf,
screenshot attached is the mockup for Folder Structure.
Thanks
Zeno J S
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