2017-04-22 7 views
1

내부에 저장된 날짜로 observablecollection을 필터링하려고합니다. 사용자는 캘린더보기를 사용하여 날짜를 선택합니다.작업 <ObservableCollection <AppointmentItem >>에 정의가 없습니다.

public async Task RefreshItems(bool showActivityIndicator, bool syncItems) 
     { 
      using (var scope = new ActivityIndicatorScope(syncIndicator, showActivityIndicator)) 
      { 

       var items = manager.GetAppointmentItemsAsync(); 


       CalendarVM vm = new CalendarVM(); 
       calendar.SetBinding(Calendar.DateCommandProperty, nameof(vm.DateChosen)); 
       calendar.SetBinding(Calendar.SelectedDateProperty, nameof(vm.DateSelected)); 
       calendar.BindingContext = vm; 

       var filtered = items.Where(appointmentItem => appointmentItem.Date == SelectedDate); 
      } 
     } 

다음은 사용자가 선택한 날짜와 데이터가있는 AppointmentPage 클래스의 코드입니다.

public async Task<ObservableCollection<AppointmentItem>> GetAppointmentItemsAsync(bool syncItems = false) 
     { 


      try 
      { 

       IEnumerable<AppointmentItem> items = await appointmentTable 
             .ToEnumerableAsync(); 

       return new ObservableCollection<AppointmentItem>(items); 

      } 
      catch (MobileServiceInvalidOperationException msioe) 
      { 
       Debug.WriteLine(@"Invalid sync operation: {0}", msioe.Message); 
      } 
      catch (Exception e) 
      { 
       Debug.WriteLine(@"Sync error: {0}", e.Message); 
      } 
      return null; 

     } 

그리고 여기서 데이터베이스에서 데이터를 검색하는 데 사용되는 dataManger 클래스의 코드입니다.

현재는이 오류가 무엇입니까 : 나는 당신이 추가 할 수 있습니다

var items = manager.GetAppointmentItemsAsync(); 

다음

ObservableCollection<AppointmentItem> items = await manager.GetAppointmentItemsAsync(); 

에 변경하려고

Error CS1061 'Task>' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument of type 'Task>' could be found (are you missing a using directive or an assembly reference?

답변

1

using System.Linq; 
코드
+1

나는 또한 당신을 사랑합니다 : D –

+0

@glenncooper 젠장, 저! 나는 너무 많은 질문에 답을 했으므로 아무도 나를 사랑한다고 말하지 않았다. 질투심을 느낀다. – CodingYoshi

2

당신의 다음 행은

var items = manager.GetAppointmentItemsAsync(); 

분명히 Where를 포함하지 않는 Task 반환하고 오류를 얻고있는 이유입니다.

는이 줄을 변경하십시오

var items = await manager.GetAppointmentItemsAsync(); 

다음 다시 Where 멤버가 있어야 타입 ObservableCollection<AppointmentItem>의 컬렉션을 얻을 것이다.

+0

나는 너를 너무 사랑해. –

+1

'':) #WishStackOverflowAllowedSmallerComments. BTW, @ Alessandro Caliaro에게도 약간의 사랑을 전하십시오. D. 그는 그 질문에 답하기 위해 1 위를 차지했습니다. –