从Object Observable集合中选择单个列

时间:2013-03-07 07:32:07

标签: c# wpf selection observablecollection

我的ObservableCollection在运行时填充了4列。

public ObservableCollection<object> SelectedRows;

我想从此集合中获取Id列值,但我无法使用LINQ获取此值,因为在编译时我不知道集合中是否存在Id列。

3 个答案:

答案 0 :(得分:0)

也许是这样的:

vat w = from s in db.table
        select s.id;

foreach (var i in w)
{ 
    console.writeln(i);
}

答案 1 :(得分:0)

var selectedIndexId = from itemSelectedRows in <YourListName>.ToList<object>()
                      select itemSelectedRows.GetType().GetProperty("Id").GetValue(itemSelectedRows, null);

答案 2 :(得分:0)

您可以使用数据绑定来执行此操作:

<ListBox ItemsSource="{Binding SelectedRows}"
         DisplayMemberPath="The property to be displayed"
         SelectValuePath="The property that SelectedValue would bind to"
         SelectedValue="{Binding SelectedRowId}" />

如果您需要在C#中执行此操作,我强烈建议您的对象实现您可以强制转换的通用接口。否则,您可以使用dynamic关键字:

SelectedRows.Cast<dynamic>().Select(d => (int)d.Id)