or
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace PropertyGridTest{ public partial class Form1 : Form { MyObject theObject = new MyObject(); public Form1() { InitializeComponent(); theObject.MyEnum = MyEnum.One; theObject.Name = "test"; radPropertyGrid1.SelectedObject = theObject; } } public enum MyEnum { One, Two, Three, Four, Five }; public class MyObject { public string Name { get; set; } public MyEnum MyEnum { get; set; } public MyObject() { } }}

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Telerik.WinControls.UI;namespace GridTest{ public partial class Form1 : Form { private BindingList<Author> AuthorData = new BindingList<Author>(); private BindingList<Book> BookData = new BindingList<Book>(); public Form1() { InitializeComponent(); radGridViewAuthors.DataSource = AuthorData; radGridViewBooks.MasterTemplate.Columns.Clear(); GridViewComboBoxColumn colAuth = new GridViewComboBoxColumn("Author"); colAuth.HeaderText = "Author"; colAuth.Name = "Author"; colAuth.DataSource = AuthorData; colAuth.ValueMember = "Id"; colAuth.DisplayMember = "Name"; colAuth.DisplayMemberSort = true; radGridViewBooks.MasterTemplate.Columns.Add(colAuth); GridViewTextBoxColumn colName = new GridViewTextBoxColumn("Name"); colName.HeaderText = "Name"; colName.Name = "Name"; colName.ReadOnly = true; radGridViewBooks.MasterTemplate.Columns.Add(colName); radGridViewBooks.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; radGridViewBooks.DataSource = BookData; } private void button1_Click(object sender, EventArgs e) { Author m = new Author(); m.Id = AuthorData.Count + 1; AuthorData.Add(m); m.Name = textBoxAuthorName.Text; } private void button2_Click(object sender, EventArgs e) { Book m = new Book(textBoxBookName.Text); BookData.Add(m); } } public class Author : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } private int id; public int Id { get { return id; } set { id = value; NotifyPropertyChanged("Id"); } } private string name; public string Name { get { return name; } set { name = value; NotifyPropertyChanged("Name"); } } public Author() { } public Author(int id, string name) { Id = id; Name = name; } } public class Book : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } private string name; public string Name { get { return name; } set { name = value; NotifyPropertyChanged("Name"); } } private Author author; public Author Author { get { return author; } set { author = value; NotifyPropertyChanged("Author"); } } public Book() { } public Book(string name) { Name = name; } }}