or
| <telerik:GridViewDataColumn |
| Header="Questions" |
| DataMemberBinding="{Binding Operation, Mode=TwoWay}"> |
| <telerik:GridViewDataColumn.CellEditTemplate> |
| <DataTemplate> |
| <telerik:RadComboBox DisplayMemberPath="operation" SelectedValuePath="id" |
| ItemsSource="{Binding Operations, Mode=TwoWay}" /> |
| </DataTemplate> |
| </telerik:GridViewDataColumn.CellEditTemplate> |
| </telerik:GridViewDataColumn> |
| view = new ListCollectionView( LayoutCapturer.GetSavedLayouts() ); |
| view.Filter = FilterObject; |
| this.carousel.ItemsSource = view; |
| this.carouselPanel.ItemsPerPage = ( carousel.Items.Count < 15 ) ? |
| ( ( carousel.Items.Count % 2 == 0 ) ? carousel.Items.Count - 1 : carousel.Items.Count ) : 15; |
| <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> |
| <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) |
| { |
| ... |
| } |
| 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 |
| } |
| <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,
| <Window x:Class="WpfApplication6.MainWindow" |
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| xmlns:local="clr-namespace:WpfApplication6" |
| xmlns:Telerik="http://schemas.telerik.com/2008/xaml/presentation"> |
| <Grid> |
| <Grid.Resources> |
| <local:LeaguesDataSource x:Key="MyList" /> |
| <HierarchicalDataTemplate x:Key="Division" ItemsSource="{Binding Teams}"> |
| <StackPanel Orientation="Horizontal"> |
| <TextBlock Text="{Binding Name}" FontSize="12" /> |
| </StackPanel> |
| </HierarchicalDataTemplate> |
| <HierarchicalDataTemplate x:Key="OtherDivision" ItemsSource="{Binding Teams}"> |
| <StackPanel Orientation="Horizontal"> |
| <TextBlock Text="{Binding Name}" FontSize="26" /> |
| </StackPanel> |
| </HierarchicalDataTemplate> |
| <HierarchicalDataTemplate x:Key="League" ItemTemplate="{StaticResource Division}" |
| ItemsSource="{Binding Divisions}"> |
| <StackPanel Orientation="Horizontal"> |
| <TextBlock Text="{Binding Name}" Foreground="Black" FontSize="15" /> |
| </StackPanel> |
| </HierarchicalDataTemplate> |
| <local:LeagueDataTemplateSelector x:Key="myDataTemplateSelector" |
| LeagueTemplate="{StaticResource League}" |
| DivisionTemplate="{StaticResource Division}" |
| OtherDivisionTemplate="{StaticResource OtherDivision}" |
| /> |
| </Grid.Resources> |
| <Grid Width="300" Height="320"> |
| <Telerik:RadTreeView |
| VerticalAlignment="Top" |
| ItemsSource="{Binding Source={StaticResource MyList}}" |
| ItemTemplateSelector="{StaticResource myDataTemplateSelector}" |
| /> |
| </Grid> |
| </Grid> |
| </Window> |
| using System; |
| using System.Collections.Generic; |
| using System.IO; |
| using System.Text; |
| using System.Windows; |
| using System.Windows.Controls; |
| using System.Windows.Data; |
| using System.Windows.Documents; |
| using System.Windows.Input; |
| using System.Windows.Media; |
| using System.Windows.Media.Imaging; |
| using System.Windows.Shapes; |
| using System.Xml.Linq; |
| using System.Linq; |
| namespace WpfApplication6 |
| { |
| /// <summary> |
| /// Interaction logic for MainWindow.xaml |
| /// </summary> |
| public partial class MainWindow : Window |
| { |
| public MainWindow() |
| { |
| InitializeComponent(); |
| } |
| } |
| public class League |
| { |
| public League(string name) |
| { |
| _name = name; |
| _divisions = new List<Division>(); |
| } |
| string _name; |
| public string Name { get { return _name; } } |
| List<Division> _divisions; |
| public List<Division> Divisions { get { return _divisions; } } |
| } |
| public class Division |
| { |
| public Division(string name) |
| { |
| _name = name; |
| _teams = new List<Team>(); |
| } |
| string _name; |
| public string Name { get { return _name; } } |
| List<Team> _teams; |
| public List<Team> Teams { get { return _teams; } } |
| } |
| public class Team |
| { |
| public Team(string name) |
| { |
| _name = name; |
| } |
| string _name; |
| public string Name { get { return _name; } } |
| } |
| public class LeaguesDataSource : List<League> |
| { |
| public LeaguesDataSource() |
| { |
| League leagueA = new League("League A"); |
| League leagueB = new League("League B"); |
| Division leagueADivisionA = new Division("Division A"); |
| leagueA.Divisions.Add(leagueADivisionA); |
| Division leagueADivisionB = new Division("Division B"); |
| leagueA.Divisions.Add(leagueADivisionB); |
| Division leagueADivisionC = new Division("Division C"); |
| leagueA.Divisions.Add(leagueADivisionC); |
| Division leagueBDivisionA = new Division("Division A"); |
| leagueBDivisionA.Teams.Add(new Team("Team 1")); |
| leagueBDivisionA.Teams.Add(new Team("Team 2")); |
| leagueBDivisionA.Teams.Add(new Team("Team 3")); |
| leagueBDivisionA.Teams.Add(new Team("Team 4")); |
| leagueBDivisionA.Teams.Add(new Team("Team 5")); |
| leagueB.Divisions.Add(leagueBDivisionA); |
| Division leagueBDivisionB = new Division("Division B"); |
| leagueBDivisionB.Teams.Add(new Team("Team Diamond")); |
| leagueBDivisionB.Teams.Add(new Team("Team Heart")); |
| leagueBDivisionB.Teams.Add(new Team("Team Club")); |
| leagueBDivisionB.Teams.Add(new Team("Team Spade")); |
| leagueB.Divisions.Add(leagueBDivisionB); |
| Division leagueBDivisionC = new Division("Division C"); |
| leagueBDivisionC.Teams.Add(new Team("Team Alpha")); |
| leagueBDivisionC.Teams.Add(new Team("Team Beta")); |
| leagueBDivisionC.Teams.Add(new Team("Team Gamma")); |
| leagueBDivisionC.Teams.Add(new Team("Team Delta")); |
| leagueBDivisionC.Teams.Add(new Team("Team Epsilon")); |
| leagueB.Divisions.Add(leagueBDivisionC); |
| this.Add(leagueA); |
| this.Add(leagueB); |
| } |
| } |
| public class LeagueDataTemplateSelector : DataTemplateSelector |
| { |
| private HierarchicalDataTemplate leagueTemplate; |
| private HierarchicalDataTemplate divisionTemplate; |
| private HierarchicalDataTemplate otherDivisionTemplate; |
| public LeagueDataTemplateSelector() |
| { |
| } |
| public override DataTemplate SelectTemplate(object item, DependencyObject container) |
| { |
| if (item is League) |
| return this.leagueTemplate; |
| else if (item is Division) |
| return this.divisionTemplate; |
| return null; |
| } |
| public HierarchicalDataTemplate LeagueTemplate |
| { |
| get |
| { |
| return this.leagueTemplate; |
| } |
| set |
| { |
| this.leagueTemplate = value; |
| } |
| } |
| public HierarchicalDataTemplate DivisionTemplate |
| { |
| get |
| { |
| return this.divisionTemplate; |
| } |
| set |
| { |
| this.divisionTemplate = value; |
| } |
| } |
| public HierarchicalDataTemplate OtherDivisionTemplate |
| { |
| get |
| { |
| return this.otherDivisionTemplate; |
| } |
| set |
| { |
| this.otherDivisionTemplate = value; |
| } |
| } |
| } |
| } |