WPF平台界面开发控件使用 - 绑定到异步数据源的下拉编辑器 DevExpressWPF
DevExpress WPF Subscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。
问题
想让组合框编辑具有无限滚动功能,例如网格控件无限异步源(https://docs.devexpress.com/WPF/120193/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview)..),每次向下滚动组合框时,它将调用rest api来获取数据并将其添加到组合框中资源。
有没有办法在组合框编辑中做到这一点?想让它像每次FetchRowsAsync方法一样简单地进行网格控制时,滚动到底部列表。
在尝试使用AutoSuggestEdit,但是ComboBoxEdit中似乎没有类似Value Member的东西? 因为需要使用另一个属性(例如“ Id”)将值存储在Edit Value中,但文本成员是从字符串属性(例如“ Description”)中获取的。
解决方案
LookUpEdit和ComboBoxEdit都不能正确使用从虚拟数据源检索的数据。 最接近的替代方法如下:
- 请改用即时反馈数据源来替代;
- 使用AutoSuggestEdit并处理其QuerySubmitted 事件,请参见以下示例:How to use AutoSuggestEdit with InfiniteAsyncSource.
在这两种情况下,都可以使用PopupContentTemplate属性来自定义弹出窗口中放置的GridControl,以使其根据需要显示。另请参见LookUpEdit - How to Customize the embedded grid control。
AutoSuggestEdit没有ValueMember,该编辑器使用动态数据,无法访问整个源集合。 因此它无法通过ID查找和显示数据源对象,如果只需要从AutoSuggestEdit的下拉列表中选择的对象中检索ID,则可以处理RecommendationionChosen事件:
C#
void SuggestionChosen(object sender, AutoSuggestEditSuggestionChosenEventArgs e) { var id = ((Customer)e.SelectedItem).CustomerId; }
DevExpress技术交流群3:700924826 欢迎一起进群讨论