×
Namespaces

Variants
Actions

如何在Windows Phone 7上使用Auto Complete Box

From Nokia Developer Wiki
Jump to: navigation, search
WP Metro Icon UI.png
WP Metro Icon Tools.png
SignpostIcon XAML 40.png
WP Metro Icon WP8.png
SignpostIcon WP7 70px.png
Article Metadata

代码示例
兼容于
文章
翻译:
最后由 hamishwillee 在 17 Jul 2013 编辑

这篇文章展示了如何在Windows Phone 7上使用AutoCompleteBox。

Contents

前提条件

AutoCompleteBox在默认的ToolBox中是没有的,所以我们需要从这里下载一个Silverlight Toolkit来使用AutoCompleteBox工具。如果还没有安装toolkit,请跟随下面的步骤进行安装。

安装Silverlight Toolkit

  • http://silverlight.codeplex.com/releases/view/60291下载.msi文件。
  • 在下载了.msi文件后,双击并安装。在安装成功后,重新启动Visual Studio 2010。(你也可以在执行此步骤前创建一个新的项目)
  • 在检查安装后,将鼠标移到ToolBox上>>右击'Windows Phone Controls' >>选择Items。现在你可以在tool list里看到'AutoCompleteBox'了。

AutoCompleteBox tool in the tools list

开始个新项目

  • 在Visual Studio 2010里创建一个新的项目>>>>New Project>>Windows Phone Application - Visual C#。并给该项目命名一个名称。

Creating a new Project in Windows Phone 7 using Visual C#

使用IEnumerable

  • 现在,我们需要从IEnumerable接口派生一个类。右击项目的Project Explorer>>Add>>New Item>>Class(在这里,我们为我们的类命名为'SampleWords')
  • 如果我们从IEnumerable接口派生类,那么GetEnumerator()是强制要求实现的。所以,我们的类在定义时必须按下面所示来进行。
namespace SampleAutoCompleteBox
{
public class SampleWords : IEnumerable
{
public IEnumerable AutoCompletions = new List<string>()
{
"Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Nullam", "felis", "dui", "gravida", "at",
"condimentum", "eget", "mattis", "non", "est", "Duis", "porta", "ornare", "tellus", "at", "convallis", "nibh", "aliquam",
"faucibus", "Vivamus", "molestie", "fringilla", "ullamcorper", "Aenean", "non", "diam", "eu", "sapien", "pretium", "iaculis",
"Quisque", "at", "ante", "libero", "eu", "tincidunt", "urna", "Cras", "libero", "ligula", "hendrerit", "at", "posuere", "at",
"tempor", "at", "nulla", "Aliquam", "feugiat", "sagittis", "dolor", "convallis", "porttitor", "neque", "commodo", "ut", "Praesent",
"egestas", "tincidunt", "lectus", "et", "pharetra", "enim", "semper", "et", "Fusce", "placerat", "orci", "vel", "iaculis",
"dictum", "nulla", "sem", "convallis", "nunc", "in", "viverra", "leo", "mauris", "eu", "odio", "Nullam", "et", "ultricies",
"sapien", "Proin", "quis", "mi", "a", "sapien", "semper", "lobortis", "ut", "eget", "est", "Suspendisse", "scelerisque", "porta",
"mattis", "In", "eleifend", "tellus", "vel", "nulla", "aliquam", "ornare", "Praesent", "tincidunt", "dui", "ut", "libero",
"iaculis", "consequat", "Nunc", "interdum", "eleifend", "rhoncus", "Curabitur", "sollicitudin", "nulla", "sagittis", "quam",
"vehicula", "cursus", "Fusce", "laoreet", "arcu", "vitae", "fringilla", "scelerisque", "nisi", "purus", "laoreet", "ipsum", "id",
"suscipit", "erat", "tellus", "eu", "sapien", "Proin", "pharetra", "tortor", "nisl", "Etiam", "et", "risus", "eget", "lectus",
"vulputate", "dignissim", "ac","sed", "erat", "Nulla", "vel", "condimentum", "nunc", "Suspendisse", "aliquam", "euismod", "dictum",
"Ut", "arcu", "enim", "consectetur", "at", "rhoncus", "at", "porta", "ut", "lacus", "Donec", "nisi", "quam", "faucibus", "tempor",
"tincidunt", "eu", "porttitor", "id", "ipsum", "Proin", "nec", "neque", "nulla", "Suspendisse", "sapien", "metus", "aliquam", "nec",
"dapibus", "consequat", "rutrum", "id", "leo", "Donec", "ac", "fermentum", "tortor", "Pellentesque", "nisl", "orci", "tincidunt",
"at", "iaculis", "vitae", "consequat", "scelerisque", "ante", "Suspendisse", "potenti", "Maecenas", "auctor", "justo", "a", "nibh",
"sagittis", "facilisis", "Phasellus", "ultrices", "lectus", "a", "nisl", "pretium", "accumsan"
};
 
public IEnumerator GetEnumerator()
{
return AutoCompletions.GetEnumerator();
}
}
}
  • 不要忘记在代码中添加下面两行指令
using System.Collections; // for 'IEnumerable'
using System.Collections.Generic; // for 'List'
  • 因此,我们声明一系列字符串作为我们的样本字符串。现在让它们工作在UI上。


利用SampleWords 类将UI和Auto Complete Box结合起来

  • 我们在xaml文件中已经有包括命名空间在内的Strings类(SampleWords类根据这个例子创建),我们需要把Auto Complete box添加进去。
  • 我们需要将下面的代码加入到MainPage.xaml中。
xmlns:local="clr-namespace:SampleAutoCompleteBox"

xmlns:local总是指向了最顶端的命名空间。所以,我们需要在SampleAutoCompleteBox命名空间中定义SampleWords.cs(就像是你的项目名)。

  • 在MainPage.xaml文件中创建/声明一个静态的资源,就像下面的示例所示。
<phone:PhoneApplicationPage.Resources>
<local:SampleWords
x:Key="AutoCompletions" />
</phone:PhoneApplicationPage.Resources>

在这里,'local:'在我们声明的一系列字符串中已经有了类文件名。同时我们也定义了一个'AutoCompletions'主键以备我们以后要使用。

  • 现在我们从Toolkit中拖拽一个AutoCompleteBox控件到MainPage的设计界面。这时,相应的代码将被写入代码视图。
  • 我们将会将值'StaticResource AutoCompletions"指派给属性'ItemsSource'就如下图所示。
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<toolkit:AutoCompleteBox HorizontalAlignment="Left" Width="450" Grid.Row="0"
Name="autoCompleteBox1" VerticalAlignment="Top"
ItemsSource="{StaticResource AutoCompletions}"/>
</Grid>
  • 将现在所建的项目运行来观察AutoCompleteBox tool的运行状况。

Ui AutoCompleteBoxTool.PNG

源代码

	在文章中的示例可以从下面的网站下载:
	Media:SampleAutoCompleteBox.zip
This page was last modified on 17 July 2013, at 05:01.
129 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×