Hey,
We are trying to use RadPropertyGrid for a configurable application where we don't know the objects at design time. At runtime we are using PropertyDefinition for each field. This is working well except when we need to create a RadComboBox and assign the ItemsSource at runtime. This is the function to create the "Generic" DataTemplate and the only question we have is how to set the ItemsSource on the newly created RadComboBox (it is the codedValueDomain parameter).
Thanks,
Mano
We are trying to use RadPropertyGrid for a configurable application where we don't know the objects at design time. At runtime we are using PropertyDefinition for each field. This is working well except when we need to create a RadComboBox and assign the ItemsSource at runtime. This is the function to create the "Generic" DataTemplate and the only question we have is how to set the ItemsSource on the newly created RadComboBox (it is the codedValueDomain parameter).
Thanks,
Mano
private DataTemplate GetDataTemplate(Esri.ArcGISRuntime.Data.FieldInfo fieldInfo, CodedValueDomain codedValueDomain){ StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("<DataTemplate "); stringBuilder.Append("xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' "); stringBuilder.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' "); stringBuilder.Append("xmlns:telerik='http://schemas.telerik.com/2008/xaml/presentation'>"); if (codedValueDomain != null) stringBuilder.Append(string.Format(@"<telerik:RadComboBox Name=""comboBox"" SelectedValue=""{{Binding Attributes[{0}], Mode=TwoWay}}"" DisplayMemberPath=""Value"" SelectedValuePath=""Key"" HorizontalAlignment=""Stretch"" />", fieldInfo.Name)); else if (fieldInfo.Type == FieldType.Integer || fieldInfo.Type == FieldType.Double || fieldInfo.Type == FieldType.SmallInteger || fieldInfo.Type == FieldType.Single) stringBuilder.Append(string.Format(@"<telerik:RadNumericUpDown Value=""{{Binding Attributes[{0}], Mode=TwoWay}}"" HorizontalAlignment=""Stretch""/>", fieldInfo.Name)); else if (fieldInfo.Type == FieldType.Date) stringBuilder.Append(string.Format(@"<telerik:RadDateTimePicker SelectedValue=""{{Binding Attributes[{0}], Mode=TwoWay}}"" HorizontalAlignment=""Stretch"" InputMode=""DatePicker""/>", fieldInfo.Name)); else stringBuilder.Append(string.Format(@"<telerik:RadMaskedTextInput Value=""{{Binding Attributes[{0}], Mode=TwoWay}}"" TextMode=""PlainText"" Mask="""" HorizontalAlignment=""Stretch""/>", fieldInfo.Name)); stringBuilder.Append("</DataTemplate>"); DataTemplate dataTemplate = System.Windows.Markup.XamlReader.Parse(stringBuilder.ToString()) as DataTemplate; return dataTemplate;}