从Object Observable集合中选择单个列

本文关键字:选择 单个列 集合 Object Observable | 更新日期: 2023-09-27 18:02:36

我有一个ObservableCollection在运行时填充了4列。

public ObservableCollection<object> SelectedRows;

我想从这个集合中获得一个Id列值,但我无法使用LINQ获得这个,因为在编译时我不知道Id列存在于集合中。

从Object Observable集合中选择单个列

可以这样写:

vat w = from s in db.table
        select s.id;
foreach (var i in w)
{ 
    console.writeln(i);
}
var selectedIndexId = from itemSelectedRows in <YourListName>.ToList<object>()
                      select itemSelectedRows.GetType().GetProperty("Id").GetValue(itemSelectedRows, null);

您可以使用数据绑定:

<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)