Win Forms: Как связать свойство UserControl в DataRepeater с самим элементом коллекции

Я использую повторитель данных из пакетов питания Visual Basic (Microsoft.VisualBasic.PowerPacks.DataRepeater) в.Net 4.0 (C#) проект winforms. Я связываю это (устанавливая DataSource свойство) к универсальному List<T>, Т - только один из моих бизнес-классов.

Элемент управления, который я поместил в повторитель данных, является UserControl. UserControl имеет открытое свойство типа T, которое называется MyItem,

Я хочу связать MyItem Свойство UserControl для фактического элемента типа T в коллекции, но оно не работает. Я могу привязать к одному из свойств типа T, но не к самому элементу коллекции. Обратите внимание, я не пытаюсь привязать его ко всей коллекции, а скорее к элементу коллекции, который идет с этой строкой в ​​повторителе данных (текущий элемент).

Что я могу ввести в dataMember параметр DataBindings.Add способ сделать эту работу? я пытался ".", "/" а также "" безрезультатно.

Вот мой объект коллекции:

public class MyClass
{
  public string SomeProperty {get; set;}

    public MyClass Self
    {
        get
        {
            return this;
        }
        set
        { 

        }
    }

}

Вот мой пользовательский контроль:

public partial class MyUserControl : UserControl
{


    public MyUserControl()
    {
        InitializeComponent();
    }

    private MyClass _myItem;
    public MyClass MyItem
    {
        get 
        {
            // this never gets called
            return _myItem;
        }
        set {
            // this never gets called
            _myItem = value;
            // Do something with _myItem
        }
    }

    private string _APropertyToBindToOneOfMyItemsProperties;
    public string APropertyToBindToOneOfMyItemsProperties
    {
        get
        {
            // this gets called
            return _APropertyToBindToOneOfMyItemsProperties;
        }
        set
        {
            // this gets called
            _APropertyToBindToOneOfMyItemsProperties = value;
        }
    }
}

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

    var MyCollection = new List<MyClass>();
    MyCollection.Add(new MyClass() {SomeProperty = "Value1"});
    MyCollection.Add(new MyClass() {SomeProperty = "Value2"});
    this.MyUserControl1.DataBindings.Add("APropertyToBindToOneOfMyItemsProperties", MyCollection, "SomeProperty"); // this works!
    this.MyUserControl1.DataBindings.Add("MyItem", MyCollection, "/"); // can't get this to work!
    this.MyUserControl1.DataBindings.Add("MyItem", MyCollection, "Self"); // can't get this to work either!

    this.MyDataRepeater.DataSource = MyCollection;

0 ответов

Другие вопросы по тегам