ComboBox в UserControl. настроить привязку данных - PullRequest
0 голосов
/ 06 мая 2011

У меня есть поле со списком в пользовательском элементе управления, и я хочу, чтобы данные связывали его, но единственное, к чему у меня есть доступ в меню свойств в представлении конструктора Visual Studio 2008 - это источник данных и элемент отображения.Есть ли способ настроить usercontrol, чтобы я тоже мог редактировать выбранный элемент значения в меню свойств?

[System.ComponentModel.ComplexBindingProperties("DataSource", "DisplayMember")]
public partial class CustomComboBox : UserControl
{
    private object dataSource;
    private string displayMember;


    [AttributeProvider(typeof(IListSource))]
    public object DataSource
    {
        get
        {
            return this.dataSource;
        }

        set
        {
            this.dataSource = value;
        }
    }

    public String DisplayMember
    {
        get
        {
            return this.displayMember;
        }

        set
        {
            this.displayMember = value;
        }
    }

    public CustomComboBox()
    {
        InitializeComponent();
    }

    private void BindComboBox()
    {
        if (this.dataSource == null || this.displayMember == null)
        {
            return;
        }

        Binding binding = new Binding("DataSource", this.dataSource, this.displayMember, true);
        Binding binding2 = new Binding("DisplayMember", this.dataSource, this.displayMember, true);
        this.comboBox1.DataBindings.Clear();
        this.comboBox1.DataBindings.Add(binding);
        this.comboBox1.DataBindings.Add(binding2);
    }
}

1 Ответ

0 голосов
/ 10 мая 2011

В итоге я добавил свойство для каждого поля, которое хотел отредактировать, и добавил [Browsable (true)] над всеми свойствами. Это позволило мне редактировать все как текстовое поле в меню свойств.

...