博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox
阅读量:5278 次
发布时间:2019-06-14

本文共 3823 字,大约阅读时间需要 12 分钟。

原文:

背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox

作者:
介绍
背水一战 Windows 10 之 控件(文本类)

  • AutoSuggestBox

示例
Controls/TextControl/AutoSuggestBoxDemo.xaml

Controls/TextControl/AutoSuggestBoxDemo.xaml.cs

/* * AutoSuggestBox - 自动建议文本框(继承自 ItemsControl, 请参见 /Controls/CollectionControl/ItemsControlDemo/) *     TextMemberPath - 建议框中的对象映射到文本框中时的字段名(如果建议框中显示的只是字符串,就不用设置这个了) *     UpdateTextOnSelect - 单击建议框中的项时,是否将其中的 TextMemberPath 指定的值赋值给文本框 *     SuggestionChosen - 在建议框(即下拉部分)中选择了某一项后触发的事件 *     TextChanged - 文本框中的输入文本发生变化时触发的事件 *     QuerySubmitted - 用户提交查询时触发的事件(可以通过回车提交,可以通过点击文本框右侧的图标提交,可以通过在下拉框中选择某一项提交) * * 注:SearchBox 弃用了 */using System;using System.Collections.ObjectModel;using Windows.UI.Xaml.Controls;namespace Windows10.Controls.TextControl{    public sealed partial class AutoSuggestBoxDemo : Page    {        public ObservableCollection
Suggestions { get; set; } = new ObservableCollection
(); public AutoSuggestBoxDemo() { this.InitializeComponent(); // 数据源有 Title 字段和 ImageUrl 字段,当用户在建议框中选中某一个对象时,会将 Title 字段指定的值赋值给文本框 autoSuggestBox.TextMemberPath = "Title"; // 用户选中建议框中的对象时,是否将 TextMemberPath 指定的值赋值给文本框 autoSuggestBox.UpdateTextOnSelect = true; autoSuggestBox.TextChanged += autoSuggestBox_TextChanged; autoSuggestBox.SuggestionChosen += autoSuggestBox_SuggestionChosen; autoSuggestBox.QuerySubmitted += AutoSuggestBox_QuerySubmitted; } void autoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) { // 因为用户的输入而使得 Text 发生变化 if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) { Suggestions.Clear(); // 根据用户的输入,修改 AutoSuggestBox 的数据源 for (int i = 0; i < 10; i++) { Suggestions.Add(new SuggestionModel() { Title = (sender.Text + "_" + i.ToString()), ImageUrl = "/Assets/StoreLogo.png" }); } } // 通过代码使 Text 发生变化 else if (args.Reason == AutoSuggestionBoxTextChangeReason.ProgrammaticChange) { } // 因为用户在建议框(即下拉部分)选择了某一项而使得 Text 发生变化 else if (args.Reason == AutoSuggestionBoxTextChangeReason.SuggestionChosen) { } } void autoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args) { // AutoSuggestBoxSuggestionChosenEventArgs // SelectedItem - 在建议框(即下拉部分)中选择的对象 lblMsg1.Text = "选中的是:" + ((SuggestionModel)args.SelectedItem).Title; } private void AutoSuggestBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args) { lblMsg2.Text = $"用户提交了查询, 查询内容: {args.QueryText}"; if (args.ChosenSuggestion != null) { lblMsg2.Text += Environment.NewLine; lblMsg2.Text += $"用户提交了查询(通过在下拉框中选择某一项的方式提交), 查询内容: {((SuggestionModel)args.ChosenSuggestion).Title}"; } } } public class SuggestionModel { public string Title { get; set; } public string ImageUrl { get; set; } }}

OK

posted on
2017-09-21 10:27 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/7567251.html

你可能感兴趣的文章
操作系统实验报告五
查看>>
php 替换模板中的 PHP源码标签字符方法
查看>>
flask信号
查看>>
SQLAlchemy中scoped_session实现线程安全
查看>>
css在各浏览器中的兼容问题
查看>>
TEXTBOX的TextMode为MultiLine时,读取页面框体被撑大的解决方案!
查看>>
Performance comparison Raw device VS Ext2 VS Ext3 VS OCFS
查看>>
string[] 和 arraylist互转及问题解决
查看>>
Python os模块
查看>>
POJ 1226 Substrings
查看>>
HDU 3480 Division
查看>>
Jquery enter事件绑定
查看>>
UVALive 6529
查看>>
centos7 安装gitlab任意版本
查看>>
【黑金原创教程】【TimeQuest】【第一章】TimeQuest 静态时序分析模型的概念
查看>>
韦到头打印链表
查看>>
如何面对故障
查看>>
Objective-C的反射机制
查看>>
图书馆管理
查看>>
Binary String Matching(kmp+str)
查看>>