Nested Properties
PropertyGrid can show nested property fields that can be expanded and edited.
To enable the nested property definitions, set the NestedPropertiesVisibility property of RadPropertyGrid to Visible. That way you will be able to modify any editable child properties of reference types.
Creating the model
public class Order
{
public DateTime OrderDate { get; set; }
public DateTime ShippedDate { get; set; }
public string ShipAddress { get; set; }
public string ShipName { get; set; }
public string ShipCountry { get; set; }
public string ShipPostalCode { get; set; }
public Employee Employee { get; set; }
}
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Title { get; set; }
public string HomePhone { get; set; }
public Department Department { get; set; }
}
public class Department
{
public int Id { get; set; }
public string Country { get; set; }
}
Setting up the data
this.propertyGrid.Item = new Order()
{
OrderDate = new DateTime(1996, 7, 5),
ShippedDate = new DateTime(1996, 8, 16),
ShipAddress = "Luisenstr. 48",
ShipCountry = "Germany",
ShipName = "Toms Spezialitaten",
ShipPostalCode = "44087",
Employee = new Employee()
{
FirstName = "Nancy",
LastName = "Davolio",
Title = "Sales Representative",
HomePhone = "(206) 555-9857",
Department = new Department()
{
Country = "USA",
Id = 1
}
},
};
Defining RadPropertyGrid
<telerikControls:RadPropertyGrid x:Name="propertyGrid" NestedPropertiesVisibility="Visible"/>
Defining Nested Property Definitions Manually
To define nested properties for a PropertyDefinition object, use its NestedProperties property.
Setting up nested properties manually
<telerikControls:RadPropertyGrid>
<telerikControls:RadPropertyGrid.PropertyDefinitions>
<propertyGrid:PropertyDefinition Binding="{Binding Employee}">
<propertyGrid:PropertyDefinition.NestedProperties>
<propertyGrid:PropertyDefinition DisplayName="First name" Binding="{Binding FirstName}"/>
</propertyGrid:PropertyDefinition.NestedProperties>
</propertyGrid:PropertyDefinition>
</telerikControls:RadPropertyGrid.PropertyDefinitions>
</telerikControls:RadPropertyGrid>