0

Linq クエリから DatagridTextcolumn に値を追加したいと思います。

私が試したこと:

DataGridTextColumn test = new DataGridTextColumn();
test.Binding = new Binding("test");
dgServer.Columns.Add(test);

dgServer.Items.Add(new Person()
{
  Status = Convert.ToBoolean(from a in db.Persons
          from d in db.PersonDetails
          where a.pID == d.pDID && a.State == "Active" 
          select a)
});

XAML

<DataGridTextColumn x:Name="test" Binding="{Binding}" Header="test"/>

上記のコードには例外があります。

タイプ 'System.Data.Objects.ObjectQuery`1 のオブジェクトをタイプ 'System.IConvertible' にキャストできません。

DatagridTextcolumnLINQ から SQLへのバインディングにバインドする方法。

親切に助けて

4

2 に答える 2

0

問題は、そのクエリの結果ではなく、linq クエリを変換しようとしていることです。この問題は、Linq の遅延実行モデルから発生します。ToBoolean 呼び出しのパラメーターに「FirstOrDefault()」メソッドを追加してみてください。

Status = Convert.ToBoolean((from a in db.Persons
      from d in db.PersonDetails
      where a.pID == d.pDID && a.State == "Active" 
      select a).FirstOrDefault())

Rohitにも良い点があります.Person型からBoolean型に実際に変換できるかどうかを確認する必要があります.

于 2013-04-10T18:03:40.810 に答える
0

これは問題のあるコードです -

Status = Convert.ToBoolean(from a in db.Persons
          from d in db.PersonDetails
          where a.pID == d.pDID && a.State == "Active" 
          select a)

内部のクエリが返さIEnumerable of type Personれ、これをに変換しようとしていますが、 from toBooleanがないため、明らかにコンパイルされません。implicit conversionIEnumerable<Person>Boolean

于 2013-04-10T18:01:42.290 に答える