Setting RadCombobox ItemsSource at runtime for EditorTemplate

2 posts, 0 answers
  1. Mano Sadeh
    Mano Sadeh avatar
    8 posts
    Member since:
    May 2010

    Posted 08 Oct 2014 Link to this post


    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).


    private DataTemplate GetDataTemplate(Esri.ArcGISRuntime.Data.FieldInfo fieldInfo, CodedValueDomain codedValueDomain)
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.Append("<DataTemplate ");
        stringBuilder.Append("xmlns='' ");
        stringBuilder.Append("xmlns:x='' ");
        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));
            stringBuilder.Append(string.Format(@"<telerik:RadMaskedTextInput Value=""{{Binding Attributes[{0}], Mode=TwoWay}}"" TextMode=""PlainText"" Mask="""" HorizontalAlignment=""Stretch""/>", fieldInfo.Name));
        DataTemplate dataTemplate = System.Windows.Markup.XamlReader.Parse(stringBuilder.ToString()) as DataTemplate;
        return dataTemplate;
  2. Dimitrina
    Dimitrina avatar
    3769 posts

    Posted 13 Oct 2014 Link to this post

    Hi Mano,

    Have you tried specifying a proper Binding for the RadComboBox.ItemsSource? In that case you should also ensure it will be correctly resolved. For the purpose, you can try defining your ViewModel as a StaticResource and then set it as a Source for the Binding of child RadGridView. You can also check the Binding.Source Property as a reference.


    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

  3. DevCraft R3 2016 release webinar banner
Back to Top