動的型を返す C#.net 4.0 でメソッドを作成しました。
public dynamic GetEntertainmentDetails(int entertainmentId)
{
dynamic result = from PE in entities.ProductEntertainments
join PM in entities.ProductModels on PE.ProductModelID equals PM.ProductModelID
join PMA in entities.ProductMasters on PM.ProductUID equals PMA.ProductUID
join PMF in entities.ProductManufactorers on PMA.ManufactorerID equals PMF.ManufactorerID
where PE.EntertainmentID == entertainmentId
select new { PE.EntertainmentID, PMF.ManufactorerID, PMA.ProductUID, PM.ProductModelID, PE.CDPlayer, PE.CDChanger, PE.DVDPlayer, PE.Radio, PE.AudioSystemRemoteControl, PE.SpeakersFront, PE.SpeakersRear };
return result;
}
次のようなメソッドで結果を使用したい:
private void DisplayRecord()
{
dynamic item = dbContext.GetEntertainmentDetails(entertainmentId);
this.cmbManufacturer.SelectedValue = item.ManufactorerID;
this.cmbProducts.SelectedValue = item.ProductUID;
this.cmbVariant.SelectedValue = item.ProductModelID;
if (item.CDPlayer == true)
this.cdPlayerYes.IsChecked = true;
else
this.cdPlayerNo.IsChecked = true;
}
ただし、返される値は cmbManufactorer またはその他のコントロールで設定されていません。動的アイテムに値があることをテストしましたが、なぜ設定されていないのかわかりません。
それを処理する正しい方法ですか、それともここで間違っていますか?
更新: このコードを WPF アプリケーションで使用しています。ドロップダウンの SelectedValue プロパティを取得/設定できます。