создание пользовательского элемента управления с тремя источниками данных, displaymember и valuemember - PullRequest
1 голос
/ 27 февраля 2012

Я хочу создать пользовательский элемент управления и мне нужно получить три источника данных, отображаемый элемент и элемент значения во время разработки.

Я могу получить источник данных с кодом ниже:

private BindingSource dataSource;

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")]
[Category("Data")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
[DefaultValue(null)]
public BindingSource DataSource
{
    get
    {
        return this.dataSource;
    }
    set
    {
        if (this.dataSource != value)
        {
            this.dataSource = value;
        }
    }
}

я не знаю, как мне получить значение и отображать связанный источник данных

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Это учебник о том, как делать то, что вы просите

http://msdn.microsoft.com/en-us/library/ms233787.aspx

0 голосов
/ 31 июля 2014

У меня есть свойство, которое поддерживает привязку данных Lookup вместо пользовательского элемента управления, здесь код:

    private System.Windows.Forms.ListBox dropdownsource = new ListBox();

    [Category("Data")]
    [Browsable(true)]
    [DefaultValue(null)]
    [System.ComponentModel.Bindable(true)]
    [TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")]
    [Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design", typeof(System.Drawing.Design.UITypeEditor))]
    public object DataSource
    {
        get
        {
            return this.dropdownsource.DataSource;
        }
        set
        {
            if (this.dropdownsource.DataSource != value)
                this.dropdownsource.DataSource = value;
        }
    }

...