2011-08-29 55 views
1

我在SL應用程序中使用radgrid控件使用RIA服務/ MVVMTypeAccessException使用RIA服務和Telerik的RadGridView

在我的ViewModel我有一個IEnumerable集合時,只需露出收集工作正常排序時:

public IEnumerable<Orders> OrderList 
    { 
     get 
     { 
      return datacontext.Orders; 
     } 
    } 

然而,當我試圖解決之前它綁定(如下)收集我得到一個錯誤「消息:System.typeaccessexception嘗試通過方法DynamicClass.lambda .....」和應用程序掛起:

public IEnumerable<Orders> OrderList 
    { 
     get 
     { 
      return datacontext.Orders.OrderBy(o=>o.OrderDate); 
     } 
    } 

您能否建議如何在不導致此問題的情況下公開排序的數據?

+0

可以粘貼完整的例外呢? – Jeff

回答

0

您可以添加.ToArray().ToList()調用您的LINQ查詢的結尾,例如:

public IEnumerable<Orders> OrderList 
    { 
     get 
     { 
      return datacontext.Orders.OrderBy(o=>o.OrderDate).ToList(); 
     } 
    } 
+0

如果解釋了爲什麼會有所幫助,答案可以改進?那麼爲什麼'.ToList()'解決了這個問題呢? – AnthonyWJones

+0

@AnthonyWJones:我同意我的回答會更好,如果我能解釋爲什麼。說實話,我無法理解我得到的錯誤消息,它提到了lambda方法和'System.Linq.OrderedEnumerable'(不是'IOrderedEnumerable')。我認爲這個錯誤信息和OP得到的一樣。如果您瞭解更多信息,歡迎您發表其他答案。 –

+0

我沒有「替代」,你的答案很好。我想我可以猜到發生了什麼,但我認爲你可能有一個更明確的理由。 – AnthonyWJones