or
<telerik:RadGridView ItemsSource="{Binding Path=NotesList}" AutoGenerateColumns="False"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="ID" DataMemberBinding="{Binding Path=ID}" /> <telerik:GridViewComboBoxColumn Header="NoteType" UniqueName="NoteType" ItemsSource="{Binding Path=NoteTypeList}" DataMemberBinding="{Binding Path=NoteTypeID}" SelectedValueMemberPath="ID" DisplayMemberPath="Name"> </telerik:GridViewComboBoxColumn> <telerik:GridViewComboBoxColumn Header="NoteSubType" ItemsSource="{???}" DataMemberBinding="{Binding Path=NoteSubTypeID}" SelectedValueMemberPath="ID" DisplayMemberPath="Name"> </telerik:GridViewComboBoxColumn> </telerik:RadGridView.Columns> </telerik:RadGridView>
public class TSplitContainer : RadSplitContainer { }public class TPaneGroup : RadPaneGroup { }public class TPane : RadPane { }d = new TDocking();//d.CurrentSaveLoadLayoutHelper = new TDefaultSaveLoadLayoutHelper(d);d.GeneratedItemsFactory = new TDefaultGeneratedItemsFactory();public class TDocking: RadDocking
{ protected override void OnElementLoading(LayoutSerializationLoadingEventArgs args) { System.Windows.DependencyObject res = args.AffectedElement; if (res == null) { string st = args.AffectedElementSerializationTag; if (st == typeof(TDocking).Name) args.SetAffectedElement(this); if (st == typeof(TDocumentPane).Name) args.SetAffectedElement(new TDocumentPane()); if (st == typeof(TPaneGroup).Name) args.SetAffectedElement(GeneratedItemsFactory.CreatePaneGroup()); if (st == typeof(TSplitContainer).Name) } System.Diagnostics.Debug.WriteLine("OnElementLoading: serializationTag={0}; res={1}", args.AffectedElementSerializationTag, res); base.OnElementLoading(args); }}public class TDefaultGeneratedItemsFactory: DefaultGeneratedItemsFactory{ public override Telerik.Windows.Controls.RadPaneGroup CreatePaneGroup() { return new TPaneGroup(); } public override Telerik.Windows.Controls.RadSplitContainer CreateSplitContainer() { return new TSplitContainer(); } public override ToolWindow CreateToolWindow() { return base.CreateToolWindow(); }}d = new TDocking();//d.CurrentSaveLoadLayoutHelper = new TDefaultSaveLoadLayoutHelper(d);d.GeneratedItemsFactory = new TDefaultGeneratedItemsFactory();TSplitContainer sc = new TSplitContainer();d.Items.Add(sc);TDocking.SetSerializationTag(sc, "TSplitContainer");sc.InitialPosition = Telerik.Windows.Controls.Docking.DockState.DockedRight;TPaneGroup pg = new TPaneGroup();TDocking.SetSerializationTag(pg, "TPaneGroup");sc.Items.Add(pg);TPane pane = new TPane();TDocking.SetSerializationTag(pane, "TPane");pg.Items.Add(pane);d1.LoadLayout(xml);public DependencyObject LoadSplitItem(XmlReader reader){ if (reader.Name == "RadSplitContainer") { return this.LoadSplitContainer(reader); } if (reader.Name == "RadPaneGroup") { return this.LoadPaneGroup(reader); } return null;}public class MyViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private ObservableCollection<Club> clubs; private ObservableCollection<Player> players; private object selectedItem; public ObservableCollection<Club> Clubs { get { if (this.clubs == null) { this.clubs = Club.GetClubs(); } return this.clubs; } } public ObservableCollection<Player> Players { get { if (this.players == null) { this.players = Player.GetPlayers(); } return this.players; } } public object SelectedItem { get { return this.selectedItem; } set { if (value != this.selectedItem) { this.selectedItem = value; this.OnPropertyChanged("SelectedItem"); } } } protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) { PropertyChangedEventHandler handler = this.PropertyChanged; if (handler != null) { handler(this, args); } } private void OnPropertyChanged(string propertyName) { this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); } } } namespace LoadRowDetails { /// <summary> /// A football club. /// </summary> public class Club : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private string name; private DateTime established; private int stadiumCapacity; private ObservableCollection<Player> players; public string Name { get { return this.name; } set { if (value != this.name) { this.name = value; this.OnPropertyChanged("Name"); } } } public DateTime Established { get { return this.established; } set { if (value != this.established) { this.established = value; this.OnPropertyChanged("Established"); } } } public int StadiumCapacity { get { return this.stadiumCapacity; } set { if (value != this.stadiumCapacity) { this.stadiumCapacity = value; this.OnPropertyChanged("StadiumCapacity"); } } } public ObservableCollection<Player> Players { get { if (null == this.players) { this.players = new ObservableCollection<Player>(); } return this.players; } } public Club() { } public Club(string name, DateTime established, int stadiumCapacity) { this.name = name; this.established = established; this.stadiumCapacity = stadiumCapacity; } public Club(string name, DateTime established, int stadiumCapacity, ObservableCollection<Player> players) : this(name, established, stadiumCapacity) { this.players = players; } protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) { PropertyChangedEventHandler handler = this.PropertyChanged; if (handler != null) { handler(this, args); } } private void OnPropertyChanged(string propertyName) { this.OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); } public override string ToString() { return this.Name; } public static ObservableCollection<Club> GetClubs() { ObservableCollection<Club> clubs = new ObservableCollection<Club>(); Club club; // Liverpool //club = parent_order //club.OrderChain.Add club = new Club("Liverpool", new DateTime(1892, 1, 1), 45362); club.Players.Add(new Player("Pepe Reina", 25, Position.GK, "Spain")); club.Players.Add(new Player("Jamie Carragher", 23, Position.DF, "England")); club.Players.Add(new Player("Steven Gerrard", 8, Position.MF, "England")); club.Players.Add(new Player("Fernando Torres", 9, Position.FW, "Spain")); clubs.Add(club); // Manchester Utd. club = new Club("Manchester Utd.", new DateTime(1878, 1, 1), 76212); club.Players.Add(new Player("Edwin van der Sar", 1, Position.GK, "Netherlands")); club.Players.Add(new Player("Rio Ferdinand", 5, Position.DF, "England")); club.Players.Add(new Player("Ryan Giggs", 11, Position.MF, "Wales")); club.Players.Add(new Player("Wayne Rooney", 10, Position.FW, "England")); clubs.Add(club); // Chelsea club = new Club("Chelsea", new DateTime(1905, 1, 1), 42055); club.Players.Add(new Player("Petr Čech", 1, Position.GK, "Czech Republic")); club.Players.Add(new Player("John Terry", 26, Position.DF, "England")); club.Players.Add(new Player("Frank Lampard", 8, Position.MF, "England")); club.Players.Add(new Player("Nicolas Anelka", 39, Position.FW, "France")); clubs.Add(club); // Arsenal club = new Club("Arsenal", new DateTime(1886, 1, 1), 60355); club.Players.Add(new Player("Manuel Almunia", 1, Position.GK, "Spain")); club.Players.Add(new Player("Gaël Clichy", 22, Position.DF, "France")); club.Players.Add(new Player("Cesc Fà bregas", 4, Position.MF, "Spain")); club.Players.Add(new Player("Robin van Persie", 11, Position.FW, "Netherlands")); clubs.Add(club); return clubs; } } } ...<Grid DataContext="{Binding}"> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <telerik:RadGridView Grid.Row="0" Name="orderGrid" ItemsSource="{Binding Order_View, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False" Margin="5"> <telerik:RadGridView.ChildTableDefinitions> <telerik:GridViewTableDefinition /> </telerik:RadGridView.ChildTableDefinitions> <telerik:RadGridView.Columns> <telerik:GridViewColumn Header="Priority"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Height="20" Source="{Binding PriorityImage}" /> <TextBlock Text="{Binding OrderPriorityShortcut}" Margin="1.2" /> </StackPanel> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> <telerik:GridViewColumn Header="Transport"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Height="20" Source="{Binding TransportImage}" /> <TextBlock Text="{Binding TransportTypeShortcut}" Margin="1.2" /> </StackPanel> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> <telerik:GridViewDataColumn DataMemberBinding="{Binding TransportWay}" Header="Transport Art" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding Device}" Header="Endgerät" IsReadOnly="True" DataContext="{Binding}" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding PickUpTime}" Header="Abholung" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding ArrivalTime}" Header="Ankunft" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding OrganisationUnitFrom}" Header="Von" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding OrganisationUnitTo}" Header="Nach" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding PatientName}" Header="Name" IsReadOnly="True"/> <telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding IsInfectious}" Header="Infektiös"/> </telerik:RadGridView.Columns> <telerik:RadGridView.HierarchyChildTemplate> <DataTemplate> <telerik:RadGridView Name="orderChainGrid" Loaded="orderChain_Loaded" ItemsSource="{Binding ChainOrders}" AutoGenerateColumns="False"> <telerik:RadGridView.Columns> <telerik:GridViewColumn Header="Priority"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Height="20" Source="{Binding PriorityImage}" /> <TextBlock Text="{Binding OrderPriorityShortcut}" Margin="1.2" /> </StackPanel> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> <telerik:GridViewColumn Header="Transport"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Image Height="20" Source="{Binding TransportImage}" /> <TextBlock Text="{Binding TransportTypeShortcut}" Margin="1.2" /> </StackPanel> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> <telerik:GridViewDataColumn DataMemberBinding="{Binding TransportWay}" Header="Transport Art" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding Device}" Header="Endgerät" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding PickUpTime}" Header="Abholung" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding ArrivalTime}" Header="Ankunft" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding OrganisationUnitFrom}" Header="Von" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding OrganisationUnitTo}" Header="Nach" IsReadOnly="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding PatientName}" Header="Name" IsReadOnly="True"/> <telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding IsInfectious}" Header="Infektiös"/> </telerik:RadGridView.Columns> </telerik:RadGridView> </DataTemplate> </telerik:RadGridView.HierarchyChildTemplate>this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (UpdateGrid)delegate(List<OrderView> ocov) { this.orderGrid.ItemsSource = ov.DisplayOrders(ref ocov); }, e.Result);<telerikControls:RadComboBox Name="uiActionerNamesComboBox" IsEditable="True"IsReadOnly="False" Margin="0,0,3,0" ItemsSource="{Binding AllAgilityJobDocs}" SelectedValue="{Binding SelectedActioner, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}"KeyUp="uiActionerNamesComboBox_KeyUp" telerikControls:TextSearch.TextPath="Title" HorizontalAlignment="Stretch" EmptyText="{Binding ThisActioner.Position, Converter={StaticResource EmptyActionerTextConverter}}">AllAgilityJobDocs which are a list of SimpleAgility Items... These items are populated and then we have the SelectedActioner Value which will be a value on this list...