I am using a Radsplitbutton and its dropdown contents is a RadCOntextMenu which has subitems. The issue is when I expand the dropdown and mouse over on the item with subitems the submenu item is popped up and now I click outside the control .I see the popped up submenu item is closed but I want the dropdown also to be closed. Any help is much appreciated. Here is the sample code.
My XAML:
<Style x:Key="Group" TargetType="telerik:RadSplitButton">
<Setter Property="controls:ImageContentSetter.Source" Value="/Images/group.ico"/>
<Setter Property="ToolTip" Value="{x:Static Properties:Resources.Group_ToolTip}"/>
<Setter Property="IsToggle" Value="True"/>
<Setter Property="cal:Message.Attach" Value="[Event Click] = [Action ToggleGroupBy()]"/>
<Setter Property="IsChecked" Value="{Binding DocumentGroupingIsSet, Mode=TwoWay, UpdateSourceTrigger=Explicit}"/> <!-- TwoWay/Explicit allows the binding to work as a Get and not Set-->
<Setter Property="DropDownContent" Value="{Binding}"/>
<Setter Property="DropDownContentTemplate">
<Setter.Value>
<DataTemplate>
<telerik:RadContextMenu>
<i:Interaction.Behaviors> <uiExt:CloseDropDownBehavior/>
</i:Interaction.Behaviors>
<telerik:RadMenuItem Header="{x:Static Properties:Resources.Group_Header}" cal:Message.Attach="ToggleGroupBySetting('Cluster')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=Cluster, Mode=TwoWay}" ><telerik:RadMenuItem.Icon>
<Image Height="24" Width="16" Source="..\..\Images\cluster.png" />
</telerik:RadMenuItem.Icon>
</telerik:RadMenuItem>
<telerik:RadMenuItem Header="{x:Static Properties:Resources.GroupByDocumentFamily_Header}" > <telerik:RadMenuItem.Icon>
<Image Height="24" Width="16" Source="..\..\Images\sort_by_family.png" />
</telerik:RadMenuItem.Icon>
<telerik:RadMenuItem Header="{x:Static Properties:Resources.StandardListSort_Header}" cal:Message.Attach="ToggleGroupBySetting('DocFamilyListOnly')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=DocFamilyListOnly, Mode=TwoWay}" />
<telerik:RadMenuItem Header="{x:Static Properties:Resources.ParentOrChildPrimarySort_Header}" cal:Message.Attach="ToggleGroupBySetting('DocFamilySortParentChild')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=DocFamilySortParentChild, Mode=TwoWay}" />
<telerik:RadMenuItem Header="{x:Static Properties:Resources.ParentPrimarySort_Header}" cal:Message.Attach="ToggleGroupBySetting('DocFamilySortParent')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=DocFamilySortParent, Mode=TwoWay}" />
</telerik:RadMenuItem>
<telerik:RadMenuItem Header="{x:Static Properties:Resources.GroupbyEmailThread_Header}" cal:Message.Attach="ToggleGroupBySetting('EmailThreading')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=EmailThreading, Mode=TwoWay}" >
<telerik:RadMenuItem.Icon>
<Image Height="24" Width="16" Source="..\..\Images\email_threads.png" />
</telerik:RadMenuItem.Icon>
</telerik:RadMenuItem>
<telerik:RadMenuItem Header="{x:Static Properties:Resources.GroupExactDuplicates_Header}" cal:Message.Attach="ToggleGroupBySetting('ExactDuplicates')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=ExactDuplicates, Mode=TwoWay}" >
<telerik:RadMenuItem.Icon>
<Image Height="24" Width="16" Source="..\..\Images\group_exact_duplicates.png" />
</telerik:RadMenuItem.Icon>
</telerik:RadMenuItem>
<telerik:RadMenuItem Header="{x:Static Properties:Resources.GroupNearDuplicates_Header}" cal:Message.Attach="ToggleGroupBySetting('NearDuplicates')" IsCheckable="True" StaysOpenOnClick="False" IsChecked="{Binding DocumentGrouping, Converter={StaticResource GroupedMenuItemsConverter}, ConverterParameter=NearDuplicates, Mode=TwoWay}" >
<telerik:RadMenuItem.Icon>
<Image Height="24" Width="16" Source="..\..\Images\group_near_duplicates.png" />
</telerik:RadMenuItem.Icon>
</telerik:RadMenuItem>
</telerik:RadContextMenu>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<
telerik:RadSplitButton x:Name="Group" Style="{StaticResource Group}" />
code for menu item click event:
private void MenuItemOnClick(object sender, RadRoutedEventArgs radRoutedEventArgs)
{
RadMenuItem menuItem = sender as RadMenuItem;
if(menuItem == null)
{
Debug.Assert(false, @"Unexpected object type.");return;
}
if(menuItem.Items.Count > 0){
// normally, menu items with child menu items
// if an item in its sub-menu has StaysOpenOnClick set
// we get a 'Click' event from the parent menu item!
return;
}
if(menuItem.StaysOpenOnClick)
{
// honor 'StaysOpenOnClick' behavior
return;
}
RadDropDownButton dropDownButton = menuItem.ParentOfType<RadDropDownButton>();
if (dropDownButton != null)
{
dropDownButton.IsOpen = false;
}
else
{
RadSplitButton splitButton = menuItem.ParentOfType<RadSplitButton>();
if (splitButton != null)
{
splitButton.IsOpen = false;
}
else
{
Debug.Assert(false, @"Cannot find parent RadDropDownButton or RadSplitButton.");
}
}
}
I want the dropdown to be closed when clicked outside the control when the menu item with submenu is expanded.Please help me to resolve this issue
Thanks
Rakesh