簡體   English   中英

Windows ComboBox選定項(從List <>填充)

[英]Windows ComboBox Selected Item (populated from List<>)

我正在設置這樣的組合框項目:

List<Object> items = new List<Object>();
items.Add(new { Text = "MyVal", Value = 1 });
cbo.DataSource = items;

然后在VS中返回:

在此處輸入圖片說明

但是我現在不能簡單地說cbo.SelectedItem.Text或cbo.SelectedItem.Value。 如果我嘗試這樣做,我會收到錯誤消息

"object does not contain a definition for value and no extension method value 
accepting a first argument of type object could be found"

我如何獲得價值財產

基於大量答復,我現在添加了此內容,以表明我根本無法獲得Text或Value的屬性。 在此處輸入圖片說明

我試過這段代碼將“字符串”傳遞給

 public class ComboboxItem
    {
        public string Text { get; set; }
        public short Value { get; set; }

        public ComboboxItem(string t, short v)
        {
            Text = t;
            Value = v;
        }

    }

組合框綁定到包含匿名類型的列表。 您應該使用dynamic關鍵字

dynamic item = cbo.SelectedItem;

String text = item.Text;
Int32 value = item.Value;

使用Text和Value屬性( ComboboxItem )創建類,然后使用該類創建item列表。 現在你可以做如下

ComboboxItem obj = cbo.SelectedItem as ComboboxItem;
//now you can get the obj.Value

您應該添加此。 cbo.SelectedItem as object; 然后,例如:

public class student
{
    public string name;
    public int age;
}
var stu = cbo.SelectedItem as student;
string name = stu.name;
int age = stu.age;

好,這是我的第一個答案。

我注意到您正在清空代碼的某些部分,因此,我假設您不是在使用對象'object',而是在使用其他對象,否則您的代碼將無法編譯。

ComboBox不保存其值的數據類型,而是將它們視為簡單對象。 因此,SelectedItem將為object類型,然后應將其強制轉換為正確的數據類型,以便訪問text / value屬性。

var myItem = cbo.SelectedItem as MyObject
if(myItem != null){
    Console.WriteLine("Value is {0}", myItem.Value);
}

暫無
暫無

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

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