Silverlight AutoCompleteBox(自动完成输入框控件)使用方法
2008-12-24 11:54:13 来源:WEB开发网讲过的事件“Populating”,不过之前我们还要先创建一个silverlight wcf,如下:
当然,我们在WCF端还是用到了之前创建的Employee类文件(当然为了避免冲突改名为:EmployeeInfo)。
另外在服务方法上使用下面代码来实现数据访问:
[ServiceContract(Namespace="")]
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
publicclassAutoCompletedService
{
[OperationContract]
publicList<EmployeeInfo>GetEmployeeCollection(stringname)
{
List<EmployeeInfo>EmpolyeeList=newList<EmployeeInfo>();
foreach(EmployeeInfoeiin(fromemployeeinfoinEmployeeInfo.AllExecutives
whereemployeeinfo.DisplayName.StartsWith(name)
selectemployeeinfo))
{
EmpolyeeList.Add(ei);
}
returnEmpolyeeList;
}
}
通过添加WEB服务引用的方式,系统会为我们创建相应的代码类文件,这里就不多说了。下面是Silverlight
端的程序代码:
voidPage_Loaded(objectsender,RoutedEventArgse)
{
WCFAutoComplete.IsTextCompletionEnabled=false;
WCFAutoComplete.SearchMode=AutoCompleteSearchMode.None;
WCFAutoComplete.Populating+=(s,args)=>
{
args.Cancel=true;
AutoCompletedServiceClientacsc=newAutoCompletedServiceClient();
acsc.GetEmployeeCollectionCompleted+=newEventHandler<GetEmployeeCollectionCompletedEventArgs>
(acsc_GetEmployeeCollectionCompleted);
acsc.GetEmployeeCollectionAsync(args.Parameter,s);
};
}
相应的返回数据事件处理代码如下:
voidacsc_GetEmployeeCollectionCompleted(objectsender,GetEmployeeCollectionCompletedEventArgse)
{
AutoCompleteBoxacb=e.UserStateasAutoCompleteBox;
if(acb!=null&&e.Error==null&&!e.Cancelled)
{
if(e.Result.Count>0)
{
List<string>employeeStrList=newList<string>();
foreach(EmployeeInfoemployeeinfoine.Result)
{
employeeStrList.Add(employeeinfo.FirstName+""+employeeinfo.LastName);
}
acb.ItemsSource=employeeStrList;
acb.PopulateComplete();
}
}
}
运行时的效果如下图所示:
当然这里会有一个问题,就是当我对上面的代码“acb.ItemsSource = employeeStrList;”换成:
“acb.ItemsSource = e.Result;”之后,会出现在下面列表中显示的数据是该类的类型type信息,我
想这可能是该控件的一个BUG,即在异步情况下进行数据(源)绑定时信息类型不正确。当然如果您知
道是什么问题并有解决方案的话,不妨通过我,这里表示感谢了。
Tags:Silverlight AutoCompleteBox 自动
编辑录入:爽爽 [复制链接] [打 印]- ››silverlight全屏显示图片
- ››自动进入飞行模式
- ››自动识别文字编码并且转换为目标编码!
- ››Silverlight MVVM 模式(一) 切近实战
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››Silverlight for Symbian
- ››自动输出SQL Server存储过程依赖列表到EXCEL文件
- ››自动分层的实现与元数据密不可分
- ››Silverlight3系列(四)数据绑定 Data Binding 1
更多精彩
赞助商链接