我已經創建了C#.net 4.0,它返回一個動態類型的方法:動態值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或任何其他控件中設置。我測試了dyanmic項目有價值,但不知道爲什麼他們沒有被設置。
這是正確的方式來處理它,或者我在這裏做錯了嗎?
更新: 我在WPF應用程序中使用此代碼。 SelectedValue屬性可以在下拉菜單中獲取/設置。
使用動態的任何理由?不能var關鍵字只是替換? LINQ通常用於編譯時安全 –