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 をバインドします。行を選択すると、選択したアイテムのアイテムを取得したい.(Subject、CreatedDate、..)

SelectedItem as //type

私のlinqの戻り値の型は何ですか?

4

1 に答える 1

1

LINQ ステートメントは、で作成された匿名型の IEnumerable を返します。

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

Anonymous Typesの備考セクションから:

匿名型は、オブジェクトから直接派生するクラス型であり、オブジェクト以外の型にキャストすることはできません。コンパイラは各匿名型の名前を提供しますが、アプリケーションはそれにアクセスできません。共通言語ランタイムの観点からは、匿名型は他の参照型と何ら変わりはありません。

したがって、その型を別の場所で使用するには、通常の C# クラスに置き換える必要があります。

于 2013-07-18T08:05:53.923 に答える