我试图通过保存在里面的日期来过滤observablecollection。用户将使用日历视图选择日期。
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类中用于从数据库中检索数据的代码。
目前我收到此错误:
错误CS1061&#39;任务&gt;&#39;才不是 包含&#39; Where&#39;的定义并没有延伸方法&#39;其中&#39; 接受第一个类型的参数 &#39;任务&GT;&#39;可以找到(是你 缺少using指令或程序集引用?
答案 0 :(得分:2)
您的以下代码行:
#include <stdio.h>
int main ()
{
int c=0,nother=0,new=0,ndigits[10],white=0,tabs=0,i=0 ;
for ( i = 0 ; i< 10 ; i++)
ndigits[i] = 0 ;
while ( (c = getchar() )!= EOF )
{
switch (c)
{
case '0' :
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' :
case '7' :
case '8' :
case '9' :
ndigits[c- '0' ]++ ;
break ;
case ' ' :
printf("w"); /*to see how many spaces */
white++ ;
case '\t' :
printf("t");
tabs++;
break;
case '\n' :
{
printf("n");
new++ ;
break ;
}
default :
nother++ ;
break ;
}
}
printf ("digits = " ) ;
for (i = 0 ; i < 10 ; i++ )
printf ("%d" , ndigits[i]) ;
printf (",tabs = %d , new line = %d, spaces = %d , other = %d " ,tabs , new,white , nother) ;
return 0 ;
}
返回var items = manager.GetAppointmentItemsAsync();
,显然不包含Task
,这就是您收到错误的原因。
请将此行更改为:
Where
然后你会得到一个var items = await manager.GetAppointmentItemsAsync();
类型的集合,该集合应该有ObservableCollection<AppointmentItem>
成员。
答案 1 :(得分:1)
我尝试改变
var items = manager.GetAppointmentItemsAsync();
到
ObservableCollection<AppointmentItem> items = await manager.GetAppointmentItemsAsync();
然后你可以尝试添加
using System.Linq;