I have a custom selection box template for a RadComboBox containing buttons, and then I handle the click events of those buttons to set values in my data. This previously worked, but I just installed the latest version of the RadControls and now it doesn't work anymore, events don't seem to get routed to the buttons inside the combo box anymore, the combo box eats all the focus and click events itself without passing them on.
I made a simple test app to show this happening, you'll notice when an item is selected, the buttons inside the combo box can't get focus and can't be clicked.
And the relevant C# code for the main window
I made a simple test app to show this happening, you'll notice when an item is selected, the buttons inside the combo box can't get focus and can't be clicked.
<
Window
x:Class
=
"RadControlsTest.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
Loaded
=
"Window_Loaded"
>
<
Window.Resources
>
<
DataTemplate
x:Key
=
"ComboBoxSelectionBoxTemplate"
>
<
Grid
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
/>
<
ColumnDefinition
/>
<
ColumnDefinition
/>
<
ColumnDefinition
/>
<
ColumnDefinition
/>
</
Grid.ColumnDefinitions
>
<
Grid.RowDefinitions
>
<
RowDefinition
/>
<
RowDefinition
/>
<
RowDefinition
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
TextBlock
Grid.Row
=
"0"
Grid.Column
=
"0"
Grid.ColumnSpan
=
"5"
Text
=
"{Binding TestData1}"
FontSize
=
"18.667"
FontWeight
=
"Bold"
FontStyle
=
"Italic"
/>
<
Separator
Grid.Row
=
"1"
Grid.Column
=
"0"
Grid.ColumnSpan
=
"5"
/>
<
TextBlock
Grid.Row
=
"2"
Grid.Column
=
"0"
Text
=
"TestText1"
HorizontalAlignment
=
"Center"
Margin
=
"3,3,3,0"
/>
<
TextBlock
Grid.Row
=
"2"
Grid.Column
=
"1"
Text
=
"TestText2"
HorizontalAlignment
=
"Center"
Margin
=
"3,3,3,0"
/>
<
TextBlock
Grid.Row
=
"2"
Grid.Column
=
"2"
Text
=
"TestText3"
HorizontalAlignment
=
"Center"
Margin
=
"3,3,3,0"
/>
<
TextBlock
Grid.Row
=
"2"
Grid.Column
=
"3"
Text
=
"TestText4"
HorizontalAlignment
=
"Center"
Margin
=
"3,3,3,0"
/>
<
TextBlock
Grid.Row
=
"2"
Grid.Column
=
"4"
Text
=
"TestText5"
HorizontalAlignment
=
"Center"
Margin
=
"3,3,3,0"
/>
<
telerik:RadButton
Grid.Row
=
"3"
Grid.Column
=
"0"
Tag
=
"0"
Focusable
=
"False"
telerik:StyleManager.Theme
=
"Office_Silver"
Content
=
"Button1"
Click
=
"ComboButton_Click"
Margin
=
"3"
HorizontalAlignment
=
"Center"
/>
<
telerik:RadButton
Grid.Row
=
"3"
Grid.Column
=
"1"
Tag
=
"1"
Focusable
=
"False"
telerik:StyleManager.Theme
=
"Office_Silver"
Content
=
"Button1"
Click
=
"ComboButton_Click"
Margin
=
"3"
HorizontalAlignment
=
"Center"
/>
<
telerik:RadButton
Grid.Row
=
"3"
Grid.Column
=
"2"
Tag
=
"2"
Focusable
=
"False"
telerik:StyleManager.Theme
=
"Office_Silver"
Content
=
"Button1"
Click
=
"ComboButton_Click"
Margin
=
"3"
HorizontalAlignment
=
"Center"
/>
<
telerik:RadButton
Grid.Row
=
"3"
Grid.Column
=
"3"
Tag
=
"3"
Focusable
=
"False"
telerik:StyleManager.Theme
=
"Office_Silver"
Content
=
"Button1"
Click
=
"ComboButton_Click"
Margin
=
"3"
HorizontalAlignment
=
"Center"
/>
<
telerik:RadButton
Grid.Row
=
"3"
Grid.Column
=
"4"
Tag
=
"4"
Focusable
=
"False"
telerik:StyleManager.Theme
=
"Office_Silver"
Content
=
"Button1"
Click
=
"ComboButton_Click"
Margin
=
"3"
HorizontalAlignment
=
"Center"
/>
</
Grid
>
</
DataTemplate
>
</
Window.Resources
>
<
Grid
>
<
telerik:RadComboBox
x:Name
=
"TestComboBox"
Margin
=
"15,10"
SelectionBoxTemplate
=
"{StaticResource ComboBoxSelectionBoxTemplate}"
Height
=
"100"
Width
=
"320"
/>
</
Grid
>
</
Window
>
And the relevant C# code for the main window
public
class
TestData
{
public
TestData(
string
test1) { TestData1 = test1; }
public
string
TestData1 {
get
;
set
; }
}
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public
partial
class
MainWindow : Window
{
List<TestData> m_TestDataList =
new
List<TestData>();
public
MainWindow()
{
m_TestDataList.Add(
new
TestData(
"test1"
));
m_TestDataList.Add(
new
TestData(
"test2"
));
m_TestDataList.Add(
new
TestData(
"test3"
));
m_TestDataList.Add(
new
TestData(
"test4"
));
InitializeComponent();
}
private
void
ComboButton_Click(
object
sender, System.Windows.RoutedEventArgs e)
{
Button comboButton = (Button)sender;
int
index = (
int
)comboButton.Tag;
MessageBox.Show(
"Clicked button "
+ index.ToString());
}
private
void
Window_Loaded(
object
sender, System.Windows.RoutedEventArgs e)
{
TestComboBox.ItemsSource = m_TestDataList;
TestComboBox.DisplayMemberPath =
"TestData1"
;
}
}