2

我有一个表“资产”和一个填充了类别的“列表视图”(assetCategoriesListView)。

我正在尝试使用类别选择来选择所有资产:

Assets myAsset = dbLinqManager.db.Assets.Where(a => assetCategoriesListView.CheckedIndices.Contains(a.Category)).First();

但似乎包含不能使用。有谁知道解决方案?

4

1 回答 1

1

你陷入了时代错误。ListView 类可以追溯到 .NET 1.0,这是泛型可用之前的黑暗日子。CheckedIndices 属性属于 ListView.CheckedIndexCollection 类型,它只实现 IEnumerable,而不是 IEnumerable<>。这就是 Contains() 不起作用的原因。

您通常可以使用 Cast() 扩展方法来修复它。但是 CheckedIndices 包含整数,而不是对象。CheckedItems 包含 ListViewItems。尚不清楚您计划如何将它们映射到“资产”。专注于将数据与视图分开。

于 2012-04-17T02:38:33.377 回答