2011-08-16 4 views
0

Sharepoint에서 Silverlight 응용 프로그램을 사용하여 WCF 서비스를 사용하려고합니다.Silverlight 응용 프로그램에서 LINQ 쿼리를 사용하여 오류가 발생했습니다.

목록의 모든 데이터를 표에 표시합니다. 여하튼 그것은 오류를 던지고있다.

람다 식을 대리자 형식이 아니므로 'system.Delegate'형식으로 변환 할 수 없습니다. 제네릭 형식 'system.collections.generic.ienumerable'를 사용

SLprojectsCRUD2010WCF.sharepointservice.list1item가 '형식이지만 변수처럼 사용되는 1 개 유형의 인수가 필요합니다.

어떻게 해결할 수 있습니까? 소스 코드의 형식이 될 때까지

private SharePointService.SkinnyBlondeDataContext _context; 

public MainPage() 
{ 
    InitializeComponent(); 
    this.Loaded += new RoutedEventHandler(LayoutRoot_Loaded); 
} 

private void ShowProjects() 
{ 
    // Declare the LINQ query 
    var projectsQuery = (from p in _context.Tasks 
          select p) as DataServiceQuery<SharePointService.TasksItem>; 
    // Execute the LINQ query 
    projectsQuery.BeginExecute((IAsyncResult asyncResult) => Dispatcher.BeginInvoke(() => 
    {    // Runs in the UI thread 
     // EndExecute returns 
     IEnumerable <TasksItem> this.dataGridProjects.ItemsSource = projectsQuery.EndExecute(asyncResult).ToList(); 
    }), projectsQuery); 
} 

private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) 
{ 
    // Get the context 
    _context = new SharePointService.SkinnyBlondeDataContext(
       new Uri("http://vanir0269/_vti_bin/listdata.svc", UriKind.Absolute)); 
    ShowProjects(); 
} 
+2

게시물을 형식을 지정하십시오. 나는 보통 당신을 위해 그것을 할 것이지만, 그것은 무서운 상태에 있으며 아마 소스 코드에서 좀더 쉽게 할 수 있습니다. –

답변

1

LINQ의 문제가 무엇인지 볼 수있는 통증이있을거야,하지만 람다 식의 문제는 간단하다 Dispatcher.BeginInvokeDelegate 소요되며, 람다 표현식은 로 변환 할 수 있습니다 특정 대리자 형식 수정하기 쉽습니다.

projectsQuery.BeginExecute((IAsyncResult asyncResult) => { 
    Action action =() => { 
     // Code in here 
    }; 
    Dispatcher.BeginInvoke(action, null); 
}); 
관련 문제