web-dev-qa-db-ja.com

WinFormsでリストをListViewにバインドすることは可能ですか?

ListViewをList<string>にバインドしたいのですが。私はこのコードを使用しています:

somelistview.DataBindings.Add ("Items", someclass, "SomeList");

この例外が発生します:読み取り専用であるため、プロパティ 'Items'にバインドできません。

Itemsプロパティが読み取り専用の場合、どのようにバインドする必要があるのか​​わかりませんか?

12
mafu

ListViewクラスは、デザイン時のバインドをサポートしていません。代替案は このプロジェクト に示されています。

11
Hans Passant

ListViewの優れたバインディング実装

http://www.interact-sw.co.uk/utilities/bindablelistview/source/

3
Petr Havlicek

または、データバインディングが必要な場合は、DataGridViewを使用できます。 BindingListとBindingSourceを使用すると、新しいアイテムがリストに追加されたときにDataGridが更新されます。

var barcodeContract = new BarcodeContract { Barcode = barcodeTxt.Text, Currency = currencyTxt.Text, Price = priceTxt.Text };

        list.Add(barcodeContract);
        var bindingList = new BindingList<BarcodeContract>(list);
        var source = new BindingSource(bindingList, null);
        dataGrid.DataSource = source;

そしてデータモデルクラス

    public class BarcodeContract
{
    public string Barcode { get; set; }
    public string Price { get; set; }
    public string Currency { get; set; }
}
1
Ozgur Sahin