Hi.
I have a problem with setting up Selected event for RadPanelBar.
My aim is to catch an event when RadPanelBarItem is selected.
I am using DataTemplate for Item, and EntityObject entityObject containing a List<Employee>
XAML:
Resources:
RadPanelBar:
My solution for selecting Item event is to handle a StackPanel MouseLeftButtonDown event:
But it works only when clicking correctly inside a stackpanel.
I want something like this:
I have a problem with setting up Selected event for RadPanelBar.
My aim is to catch an event when RadPanelBarItem is selected.
I am using DataTemplate for Item, and EntityObject entityObject containing a List<Employee>
XAML:
Resources:
| <Window.Resources> |
| <DataTemplate x:Key="RadPanelBarItemTemplate"> |
| <StackPanel MouseLeftButtonDown="pnlEmployee_MouseLeftButtonDown" Background="Transparent" Name="pnlEmployee" Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> |
| <Image Source="{Binding Photo}" Stretch="Uniform" HorizontalAlignment="Left" VerticalAlignment="Stretch" Width="50" Height="50"></Image> |
| <Label Name="lblEmployeeName" Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Content="{Binding Name}" /> |
| <Label Name="lblEmployeeID" Content="{Binding Id}" Visibility="Hidden" /> |
| </StackPanel> |
| </DataTemplate > |
| </Window.Resources> |
RadPanelBar:
| <telerik:RadPanelBar Grid.Row="1" Name="rpbLeftMenu" ExpandMode="Single" Selected="rpbLeftMenu_Selected"> |
| <telerik:RadPanelBarItem Name="rpbiEmployee" IsExpanded="True" ItemsSource="{Binding Employees}" ItemTemplate="{StaticResource RadPanelBarItemTemplate}"> |
| <telerik:RadPanelBarItem.Header> |
| <StackPanel HorizontalAlignment="Left"> |
| <Label Name="lblEmployees" Content="Сотрудники"></Label> |
| <TextBox HorizontalAlignment="Left" Name="txtEmployeesFilter" TextChanged="txtEmployeesFilter_TextChanged" Width="200"></TextBox> |
| </StackPanel> |
| </telerik:RadPanelBarItem.Header> |
| </telerik:RadPanelBarItem> |
| ... |
| </telerik:RadPanelBar> |
CodeBehind:
Getting data from DB:
| try |
| { |
| IMSSDataClassesDataContext db = new IMSSDataClassesDataContext(); |
| var query = from employees in db.imss_employees |
| orderby employees.emp_lastname |
| select new { employees.emp_ID }; |
| foreach (var emp in query) |
| { |
| var em = db.get_employee_name_by_id(emp.emp_ID).First(); |
| entityObject.Employees.Add( |
| new Employee(em.name, emp.emp_ID, ShowEmpImage(emp.emp_ID))); |
| } |
| rpbLeftMenu.DataContext = entityObject; |
| } |
| catch (Exception ex) |
| { |
| ... |
| } |
My solution for selecting Item event is to handle a StackPanel MouseLeftButtonDown event:
| private void pnlEmployee_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) |
| { |
| StackPanel sp = sender as StackPanel; |
| Label lb = sp.FindName("lblEmployeeID") as Label; |
| this.Title = Convert.ToString(lb.Content); //just for testing purposes |
| } |
But it works only when clicking correctly inside a stackpanel.
I want something like this:
| <telerik:RadPanelBarItem Selected="RadPanelBarItem_Selected"> |
| <telerik:RadPanelBarItem.Header> |
| <StackPanel Orientation="Horizontal" Margin="5"> |
| <TextBlock Text="BMW 128i Coupe" Margin="15 10 0 0" /> |
| </StackPanel> |
| </telerik:RadPanelBarItem.Header> |
| </telerik:RadPanelBarItem> |
| private void RadPanelBarItem_Selected(object sender, Telerik.Windows.RadRoutedEventArgs e) |
| { |
| ... |
| } |
But I can't set Selected event handler for Items which are binded like mine:
ItemsSource="{Binding Employees}"
How should I catch selection of Items?
Best regards,