Привязка коллекции строк к ListView, Windows Forms - PullRequest
3 голосов
/ 27 июля 2010

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

У меня есть форма со свойством, вот так ->

public DRIUploadForm()
    {
        InitializeComponent();

        lvwDRIClients.DataBindings.Add("Items", this.DirtyDRIClients, "DirtyDRIClients");
    }

private StringCollection _DirtyDRIClients;
public StringCollection DirtyDRIClients 
    { 
        get
        {
            return _DirtyDRIClients;
        }
        set
        {
            _DirtyDRIClients = Settings.Default.DRIUpdates;
        }
    }

1 Ответ

8 голосов
/ 28 июля 2010

На самом деле вы не можете привязать элемент управления ListView, так как он не поддерживает привязку. Вам необходимо добавить элементы программно. Однако вы можете привязать к ListBox, хотя, как говорили другие, вы не можете связывать строки напрямую, вам нужно создать обертку для них. Как то так ...

public partial class Form1 : Form
{
    List<Item> items = new List<Item>
    {
        new Item { Value = "One" },
        new Item { Value = "Two" },
        new Item { Value = "Three" },
    };

    public Form1()
    {
        InitializeComponent();

        listBox1.DataSource = items;
        listBox1.DisplayMember = "Value";
    }
}

public class Item
{
    public string Value { get; set; }
}
...