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; |
} |
} |
} |
} |
I have been receiving an “Object reference not set to an instance of an object.” error in the RadGridView. I am able to receive the error by creating a new WPF Application in VS2010 and placing a RadGridView within the main window. With the application running, click inside of the grid and press the Tab key. Are there any settings I should change to stop the error?
public class Item: BaseDomain |
{ |
public virtual int Id{ get; set; } |
public virtual string Name{ get; set; } |
public virtual ItemType Type{ get; set; } |
} |
public class ItemType : BaseDomain |
{ |
public virtual int Id{ get; set; } |
public virtual string Name{ get; set; } |
} |
<telerik:GridViewComboBoxColumn Header="Type" UniqueName="Type" |
DataMemberBinding="{Binding Type.Id}" DisplayMemberPath="Name" SelectedValueMemberPath="Id"> |
((GridViewComboBoxColumn)this.grServices.Columns["Type"]).ItemsSource = Repository<ItemType>.GetAll(); grServices.ItemsSource = Repository<Item>.GetAll(); |