Change Value in Editor with value parameter

2 posts, 1 answers
  1. samuel
    samuel avatar
    12 posts
    Member since:
    Sep 2008

    Posted 07 Nov 2011 Link to this post

    Hello,
    I wish that as value of property values ​​change in my editor. For example I pass a value to the ID property, I would like with Red or Blue as a possibility and if I go 2 in value to the property ID, I would like to have Green and Black. Is this possible?

    In my form

    private void radPropertyGrid1_EditorRequired(object sender, PropertyGridEditorRequiredEventArgs e)
    {
        if (e.Item.Name == "TestSam")
        {
            PropertyGridSamEditor test = new PropertyGridSamEditor();
            test.id = 1;
            e.EditorType = test.GetType();
        }
    }

    In my class PropertyGridSamEditor :
    public class PropertyGridSam2Editor : BaseInputEditor
        {
            public PropertyGridSam2Editor()
            {
                m_ID = 0;
            }
            public int m_ID { get; set; }
            public PropertyGridSam2Editor(int ID)
            {
                m_ID = ID;
            }
            public override object Value
            {
                get
                {
                    RadDropDownListElement editor = (RadDropDownListElement)this.EditorElement;
                    List<InfoSam> Isam = new List<InfoSam>();
                    if (m_ID == 0)
                    {
                        Isam.Add(new InfoSam(1, "Rouge"));
                        Isam.Add(new InfoSam(2, "Bleu"));
                    }
                    else
                    {
                        Isam.Add(new InfoSam(3, "Bleu"));
                        Isam.Add(new InfoSam(4, "Noir"));
                    }
                    editor.DisplayMember = "Couleur";
                    editor.SelectedValue = "ID";
                    editor.DataSource = Isam;
                    return editor.Text;
                }
                set
                {
                    RadDropDownListElement editor = (RadDropDownListElement)this.EditorElement;
                    if (value != null && value != DBNull.Value)
                    {
                        editor.Value = value.ToString();
                    }
                    else
                    {
                        editor.Value = "1";
                    }
                }
            }
    }


    Regards


  2. Answer
    Ivan Petrov
    Admin
    Ivan Petrov avatar
    691 posts
    Member since:
    Sep 2012

    Posted 10 Nov 2011 Link to this post

    Hi Samuel,

    Thank you for writing and for the code snippets.

    I have attached a sample project where I tried to replicate your scenario. I changed the type your editor inherits from BaseInputeEditor to PropertyGridDropDownListEditor. This way you would have more functionality and not have to implement it yourself. I have also moved your logic from the Value property to the Initialize method override. One thing left unresolved and that is what is the type of the property in the property grid. You have to return a value with the same type from the editor but I couldn't figure out what the type of the "TestSam" property is. For the example I have made it a string, so the editor can edit it. This is needed, because you have to set a ValueMember for the drop down editor element. You have set the DisplayMember, but you have not set the this way you won't be able to set the SelectedValue of the editor element. 

    I hope this example will help you. If you need further assistance, I would be glad to provide it.

    Greetings,
    Ivan Petrov
    the Telerik team

    Q2’11 SP1 of RadControls for WinForms is available for download (see what's new); also available is the Q3'11 Roadmap for Telerik Windows Forms controls.

Back to Top