Hi,
I cretaed one sample application to resolved above problem
(When I add RadContextMenu into GirdView my docking going to stop and It gives me error [System.Exception: Error HRESULTE_FAIL has been returned from a call to COM component.] if I try to dock any item. Second is, it can not load my layout means restoring layout using LoadLayout method.) and I found that I when I am using GridViewAutoGenerationColumnsEventArgs Events it gives me error. Because I want to add Hyperling in two diffenrent columns at runtime. For that I used below code.
<
Grid.Resources
>
<
telerikcontrols:GridViewDynamicHyperlinkColumn
x:Name
=
"GridViewDataColumnHyperLinkButtonAccount"
IsReadOnly
=
"True"
>
<
telerikcontrols:GridViewDynamicHyperlinkColumn.CellStyle
>
<
Style
TargetType
=
"telerikcontrols:GridViewCell"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"telerikcontrols:GridViewCell"
>
<
Border
BorderThickness
=
"0,0,0.5,0"
BorderBrush
=
"Black"
>
<
Grid
>
<
HyperlinkButton
x:Name
=
"hlbAccount"
HorizontalContentAlignment
=
"Left"
Content
=
"{Binding Account}"
VerticalContentAlignment
=
"Center"
Foreground
=
"Blue"
TargetName
=
"_blank"
Click
=
"hlbAccount_Click"
Width
=
"Auto"
/>
<
TextBox
x:Name
=
"tbAccount"
Text
=
"{Binding ActivityUUID}"
Visibility
=
"Collapsed"
/>
</
Grid
>
</
Border
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerikcontrols:GridViewDynamicHyperlinkColumn.CellStyle
>
</
telerikcontrols:GridViewDynamicHyperlinkColumn
>
<
telerikcontrols:GridViewDynamicHyperlinkColumn
x:Name
=
"GridViewDataColumnHyperLinkButtonContact"
IsReadOnly
=
"True"
>
<
telerikcontrols:GridViewDynamicHyperlinkColumn.CellStyle
>
<
Style
TargetType
=
"telerikcontrols:GridViewCell"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"telerikcontrols:GridViewCell"
>
<
Border
BorderThickness
=
"0,0,0.5,0"
BorderBrush
=
"Black"
>
<
Grid
>
<
HyperlinkButton
x:Name
=
"hlbContact"
HorizontalContentAlignment
=
"Left"
Content
=
"{Binding Contact}"
VerticalContentAlignment
=
"Stretch"
Foreground
=
"Blue"
TargetName
=
"_blank"
Click
=
"hlbContact_Click"
Width
=
"Auto"
/>
<
TextBox
x:Name
=
"tbContect"
Text
=
"{Binding ContactUUID}"
Visibility
=
"Collapsed"
/>
</
Grid
>
</
Border
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerikcontrols:GridViewDynamicHyperlinkColumn.CellStyle
>
</
telerikcontrols:GridViewDynamicHyperlinkColumn
>
</
Grid.Resources
>
-----------------------------------------------------------------------------------------------------------------------------
<
telerik:RadSplitContainer
InitialPosition
=
"DockedRight"
Orientation
=
"Vertical"
>
<
telerik:RadPaneGroup
>
<
telerik:RadPane
Header
=
"Pane Right 1"
telerik:RadDocking.SerializationTag
=
"PaneRight1"
>
<
Grid
>
<
Controls:CrmGridView
x:Name
=
"gvData"
AutoGenerateColumns
=
"False"
AutoGeneratingColumn
=
"gvData_AutoGeneratingColumn"
></
CrmControls:CrmGridView
>
</
Grid
>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
-----------------------------------------------------------------------------------------------------------------------------
private void gvData_AutoGeneratingColumn(object sender, GridViewAutoGeneratingColumnEventArgs e)
{
if (e.Column.UniqueName == "ACCOUNT" || e.Column.UniqueName == "CONTACTACCOUNT")
{
GridViewDynamicHyperlinkColumn linkColumn = new GridViewDynamicHyperlinkColumn();
if (e.Column.UniqueName == "ACCOUNT")
{
linkColumn.CellStyle = GridViewDataColumnHyperLinkButtonAccount.CellStyle;
linkColumn.UniqueName = "DefaultContact.Account";
}
else if (e.Column.UniqueName == "CONTACTACCOUNT")
{
linkColumn.CellStyle = GridViewDataColumnHyperLinkButtonContact.CellStyle;
linkColumn.UniqueName = "DefaultContact.FullName";
}
linkColumn.DataMemberBinding = (e.Column as Telerik.Windows.Controls.GridViewBoundColumnBase).DataMemberBinding;
linkColumn.Header = e.Column.Header;
linkColumn.Width = new GridViewLength();
linkColumn.IsResizable = true;
linkColumn.DisplayIndex = gvData.Columns.Count;
e.Column = linkColumn;
}
else
{
e.Cancel = true;
}
}
Error HRESULT E_FAIL has been returned from a call to a COM component.
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.Collection_RemoveAt[T](PresentationFrameworkCollection`1 collection, UInt32 index)
at System.Windows.PresentationFrameworkCollection`1.RemoveAtImpl(Int32 index)
at System.Windows.Controls.ItemCollection.RemoveAtImpl(Int32 index)
at System.Windows.Controls.ItemCollection.RemoveImpl(Object value)
at System.Windows.Controls.ItemCollection.RemoveInternal(Object value)
at System.Windows.PresentationFrameworkCollection`1.Remove(T value)
at Telerik.Windows.Controls.RadSplitContainer.RemoveFromParent()
at Telerik.Windows.Controls.Docking.DockingLayoutFactory.CleanUpLayout(RadSplitContainer container)
at Telerik.Windows.Controls.Docking.DockingLayoutFactory.CleanUpLayout()
at Telerik.Windows.Controls.RadDocking.LoadLayout(Stream source, Boolean raiseEventsIfNoSerializationTag)
at Telerik.Windows.Controls.RadDocking.LoadLayout(Stream source)
Please reply me.
Something I am missing here or not?
Thanks,
Gaurang