我在 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 属性可以在下拉列表中获取/设置。