![](/img/trans.png)
[英]Getting selected item from a WPF combobox populated by data from an access database
[英]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.