このセクションでは、ポータブルアプリケーションまたは共有アプリケーションに AutoComplete コントロールを追加し、ユーザーのために候補としてドロップダウンに項目のリストを表示する方法を説明します。
AutoComplete コントロールを表示するには、次の手順を実行します。
次の図は、ユーザーがテキストを入力したときに、AutoComplete コントロールがドロップダウンリストに候補リストをどのように提供するかを示しています。
ドロップダウンリストに表示する項目のリストを追加するには、次の手順を実行します。
C# |
コードのコピー
|
---|---|
public class Country { public override string ToString() { return Name; } public static readonly string[] Countries = { "ドイツ", "日本", "オーストラリア", "バングラデシュ", "ブラジル", "カナダ", "インドネシア", "フランス", "インド", "ネパール", "パキスタン", "スリランカ" }; public string Name { get; set; } public static ObservableCollection<Country> GetCountries() { ObservableCollection<Country> listContries = new ObservableCollection<Country>(); foreach (var item in Countries) { listContries.Add(new Country() { Name = item }); } return listContries; } } |
XAML |
コードのコピー
|
---|---|
xmlns:c1="clr-namespace:C1.Xamarin.Forms.Input;assembly=C1.Xamarin.Forms.Input" |
XAML |
コードのコピー
|
---|---|
<StackLayout Orientation="Vertical"> <c1:C1AutoComplete x:Name="autoComplete" ItemsSource="{Binding ItemsSource}" DisplayMemberPath="Name" HorizontalOptions="FillAndExpand" DropDownBackgroundColor="Gray" VerticalOptions="Start"> <c1:C1AutoComplete.ListView> <ListView> <ListView.ItemTemplate> <DataTemplate> <StackLayout Orientation="Horizontal" > <Label Text="{Binding Name}" /> </StackLayout> </DataTemplate> </ListView.ItemTemplate> </ListView> </c1:C1AutoComplete.ListView> </c1:C1AutoComplete> </StackLayout> |
C# |
コードのコピー
|
---|---|
autoComplete.ItemsSource = Country.GetCountries(); |
C# |
コードのコピー
|
---|---|
public App() { // アプリケーションのルートページ MainPage = new Page1(); } |
C# |
コードのコピー
|
---|---|
C1.Xamarin.Forms.Input.Platform.iOS.C1InputRenderer.Init(); |
C# |
コードのコピー
|
---|---|
C1.Xamarin.Forms.Input.Platform.UWP.C1InputRenderer.Init(); |
Release モードで UWP アプリケーションをコンパイルする場合は、アプリケーションに正しいアセンブリを含めるために、App.xaml.cs の OnLaunched メソッドに次のコードを明示的に追加する必要があります。
C# |
コードのコピー
|
---|---|
var assembliesToInclude = new List<Assembly>(); assembliesToInclude.Add(typeof(C1.Xamarin.Forms.Input.Platform.UWP.C1InputRenderer) .GetTypeInfo().Assembly); assembliesToInclude.Add(typeof(C1.UWP.Input.C1InputRenderer).GetTypeInfo().Assembly); Xamarin.Forms.Forms.Init(e, assembliesToInclude); |