簡體   English   中英

WinForms DataGridView中的數據綁定多值控件

[英]databinding multi-valued control in WinForms DataGridView

我正在嘗試在DataGridView(WinForms)中實現多選ComboBox。 我創建了一個相當基本的OwnerDraw ComboBox派生的控件,該控件似乎正常運行。 然后,通過創建從DataGridViewColumn派生的類,將控件托管在DataGridView中。 全部顯示確定。 我的問題是數據綁定到新列。

DataGridView數據源是BindingList <MyObject>。 MyObject具有MyProperty屬性,該屬性是BindingList <long>。 我將一個單獨的DataSource傳遞給MultiSelectComboBox並設置DisplayMember和ValueMember,以便組合框可以正確查找MyProperty中值的描述(ValueMember是一個長標識符,DisplayMember是一個字符串描述)。

當DataGridView嘗試將值提交回數據源時,出現了我遇到的問題。 MultiSelectComboBox公開類型為List <object>的SelectedValues屬性。 我將單元格的值設置為此值。 因為ValueMember命名了long屬性,所以傳遞回的對象實際上是List <long>。 我收到一個InvalidCastException,框架嘗試從List <long>強制轉換為BindingList <long>。 據推測,這是因為數據綁定試圖將MyProperty設置為單元格值。

有人可以給我一些有關應該如何綁定到BindingList的線索嗎? 如果單元宿主控件(我的MultiSelectComboBox)綁定到BindingList,是否必須查看其數據綁定並表現出不同的行為,或者框架中是否有某些支持可能對此有所幫助?

您是否嘗試過像這樣在BindingList構造函數中傳遞它:

BindingList<long> myBindingList= new BindingList<long>(myList);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM