Hi,
We're using RadDropDownButton with a ContextMenu within a Grid:
<telerik:RadGridView |
RowIndicatorVisibility="Collapsed" |
AutoGenerateColumns="False" |
ShowGroupPanel="False" |
RowDetailsVisibilityMode="VisibleWhenSelected" |
Name="MainGrid" |
ItemsSource="{Binding Alerts}" |
ShowColumnHeaders="True" |
ColumnWidth="*" |
ScrollViewer.HorizontalScrollBarVisibility="Disabled" |
> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn |
Name="Severity" |
EditTriggers="None" |
Width="30"> |
<telerik:GridViewDataColumn.CellTemplate> |
<DataTemplate> |
<StackPanel> |
<Image Source="{StaticResource CriticalAlertIcon}" |
Style="{StaticResource IconImage}" |
Visibility="{Binding IsCriticalSeverity, Converter={StaticResource VisibilityConverter_Collapsed}}" |
ToolTip="Critical Alert" |
/> |
<Image Source="{StaticResource HighAlertIcon}" |
Style="{StaticResource IconImage}" |
Visibility="{Binding IsErrorSeverity, Converter={StaticResource VisibilityConverter_Collapsed}}" |
ToolTip="Error Alert" |
/> |
<Image Source="{StaticResource MediumAlertIcon}" |
Style="{StaticResource IconImage}" |
Visibility="{Binding IsWarningSeverity, Converter={StaticResource VisibilityConverter_Collapsed}}" |
ToolTip="Warning Alert" |
/> |
<Image Source="{StaticResource LowAlertIcon}" |
Style="{StaticResource IconImage}" |
Visibility="{Binding IsInformationSeverity, Converter={StaticResource VisibilityConverter_Collapsed}}" |
ToolTip="Informative Alert" |
/> |
<Image Source="{StaticResource AutoremediationFailureAlertIcon}" |
Style="{StaticResource IconImage}" |
Visibility="{Binding IsAutoremediationFailed, Converter={StaticResource VisibilityConverter_Collapsed}}" |
ToolTip="Autoremediation has failed" |
/> |
<Image Source="{StaticResource AutoremediationSuccessfulAlertIcon}" |
Style="{StaticResource IconImage}" |
Visibility="{Binding IsAutoremediationSuccessful, Converter={StaticResource VisibilityConverter_Collapsed}}" |
ToolTip="Autoremediation has succeeded" |
/> |
</StackPanel> |
</DataTemplate> |
</telerik:GridViewDataColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<telerik:GridViewDataColumn Name="Id" |
Header="Id" |
EditTriggers="None" |
MaxWidth="50"> |
<telerik:GridViewDataColumn.CellTemplate> |
<DataTemplate> |
<TextBlock |
Text="{Binding AlertId, Mode=OneWay}" |
TextWrapping="Wrap"/> |
</DataTemplate> |
</telerik:GridViewDataColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<telerik:GridViewDataColumn Name="Device" |
Header="Device Name" |
EditTriggers="None" |
MaxWidth="150" |
TextWrapping="Wrap"> |
<telerik:GridViewDataColumn.CellTemplate> |
<DataTemplate> |
<!-- We don't want the control to wrap --> |
<ContentControl |
DataContext="{Binding AssociatedViewModel, Mode=OneWay}" |
Content="{Binding}" |
ToolTip="{Binding Name}" |
Width="1000" |
/> |
</DataTemplate> |
</telerik:GridViewDataColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<telerik:GridViewDataColumn Name="Headline" |
Header="Alert Headline" |
EditTriggers="None" |
MaxWidth="9999"> |
<telerik:GridViewDataColumn.CellTemplate> |
<DataTemplate> |
<StackPanel Orientation="Horizontal" Width="1500"> |
<TextBlock Text="WAITING FOR UPDATE: " FontWeight="Bold" |
Visibility="{Binding IsWaitingForUpdate, Converter={StaticResource VisibilityConverter_Collapsed}}" /> |
<TextBlock Text="RESOLVED: " |
Visibility="{Binding IsResolved, Converter={StaticResource VisibilityConverter_Collapsed}}" /> |
<common:IntelligentTextBlock |
DataContext="{Binding Headline, Mode=OneWay}" |
Width="1500" |
ToolTip="{Binding}" |
BubbleMouseEvents="True" |
/> |
</StackPanel> |
</DataTemplate> |
</telerik:GridViewDataColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<telerik:GridViewDataColumn Name="LastUpdate" |
Header="Last Update" |
EditTriggers="None" |
Width="140" |
DataMemberBinding="{Binding LastUpdateDate,Mode=OneWay}" /> |
<telerik:GridViewDataColumn Name="Resolve" |
Header="Resolve" |
EditTriggers="None" |
Width="100"> |
<telerik:GridViewDataColumn.CellTemplate> |
<DataTemplate> |
<telerik:RadDropDownButton |
Name="ResolveButton" |
HorizontalContentAlignment="Center" |
VerticalContentAlignment="Center" |
Content="Resolve" |
Padding="3" |
Height="25" |
Unloaded="ResolveButton_Unloaded" |
> |
<telerik:RadDropDownButton.DropDownContent> |
<telerik:RadContextMenu StaysOpen="False"> |
<telerik:RadMenuItem Header="Sample Item" |
ToolTip="Does something" |
Command="{Binding DoCommand}" |
StaysOpenOnClick="False" /> |
<!-- More RadMenuItems... --> |
</telerik:RadContextMenu> |
</telerik:RadDropDownButton.DropDownContent> |
</telerik:RadDropDownButton> |
</DataTemplate> |
</telerik:GridViewDataColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
</telerik:RadGridView.Columns> |
<telerik:RadGridView.RowDetailsTemplate> |
<DataTemplate> |
<Grid DataContext="{Binding}"> |
<Grid.ColumnDefinitions> |
<ColumnDefinition Width="80" /> |
<!-- The width of the Severity and ID columns --> |
<ColumnDefinition Width="*" /> |
</Grid.ColumnDefinitions> |
<!-- Darken the left margin: --> |
<Grid Background="Black" Opacity="0.4" /> |
<!-- The actual text --> |
<common:IntelligentTextBlock |
Grid.Column="1" |
DataContext="{Binding Description, Mode=OneWay}" |
/> |
</Grid> |
</DataTemplate> |
</telerik:RadGridView.RowDetailsTemplate> |
</telerik:RadGridView> |
The ContextMenu has many RadMenuItems, some of them with sub RadMenuItems as well. All of the items have commands. All items but one open a new Pane in the DocumentHost or open a new window. When these items are clicked, the context menu closes as it should.
The problem: One item, the first in the list, does not cause the context menu to close when clicked. This item does not open a new window, nor does it open a new pane. As part of our debugging we've actually set an empty command for this menuitem to see if the command was causing any issues. It didn't help. The command is called, but the context menu is not closing. We can close it by clicking elsewhere in the view.
We're using 2010 Q1 SP1, but this happens on 2010 Q1 as well.
We've tried doing things like hooking the Click even for the menu item and then setting the IsOpen property of the context menu to False, but it didn't help.
Any pointers?
Thanks,
yonadav