0

我有 2 个表,并使用此查询来选择一些记录。

   var temp = db.Letters
            .Where(l => !db.SendLetters.Any(s => s.LetterId == l.Id))
            .Select(l => new  { CreatedDate = l.CreatedDate, priority = l.priority, Subject = l.Subject);
  DashboardListView = CollectionViewSource.GetDefaultView(temp.ToList());

我有一个列表视图并将其与 DashboardListView 绑定

<ListView ItemsSource="{Binding DashboardListView}" SelectedItem="{Binding SelectedItem}"    sort:GridViewSort.AutoSort="True"   IsSynchronizedWithCurrentItem="True"   >
                    <ListView.View>
                        <GridView>
                            <GridView.Columns >
                               <GridViewColumn  DisplayMemberBinding="{Binding Subject}"  Width="170"  sort:GridViewSort.PropertyName="Subject"   />
                               <GridViewColumn DisplayMemberBinding="{Binding CreatedDate}"  Width="110"  sort:GridViewSort.PropertyName="CreatedDate"  />
                               <GridViewColumn  DisplayMemberBinding="{Binding priority}"   Width="80"  sort:GridViewSort.PropertyName="priority" />
                            </GridView.Columns>
                        </GridView>
                    </ListView.View>
                </ListView>

并将 SelectedItem 与 SelectedItem 属性绑定。选择一行时,我想获得SelectedItem的项目。(主题,createDate,..)

SelectedItem as //type

我的 linq 的返回类型是什么?

4

1 回答 1

1

您的 LINQ 语句返回创建的匿名类型的 IEnumerable

.Select(l => new { ... });

匿名类型的备注部分:

匿名类型是直接从 object 派生的类类型,并且不能转换为除 object 之外的任何类型。编译器为每个匿名类型提供了一个名称,尽管您的应用程序无法访问它。从公共语言运行时的角度来看,匿名类型与任何其他引用类型没有什么不同。

因此,为了在其他地方使用该类型,您必须将其替换为常规 C# 类。

于 2013-07-18T08:05:53.923 回答