11< div >
22 < h1 > Autocomplete</ h1 >
3- Documentation under construction
4- </ div >
3+ < p >
4+ The following predefined styles are available:
5+ < ul >
6+ < li > < code > MaterialDesignAutocomplete</ code > </ li >
7+ < li > < code > MaterialDesignAutocompleteDense</ code > </ li >
8+ </ ul >
9+ </ p >
10+
11+ < h2 > Screenshots</ h2 >
12+ < img src ="https://raw.githubusercontent.com/spiegelp/MaterialDesignExtensions/master/screenshots/Autocomplete.png " alt ="Autocomplete " />
13+ < h2 > Code example</ h2 >
14+
15+ < p > Item template</ p >
16+ < pre class ="language-markup "> < code class ="language-markup ">
17+ <DataTemplate x:Key="itemTemplate">
18+ <DockPanel>
19+ <md:PackIcon DockPanel.Dock="Left" Kind="{Binding Path=Icon}" Width="24" Height="24" VerticalAlignment="Center" SnapsToDevicePixels="True" />
20+ <TextBlock FontSize="14" Text="{Binding Path=Name}" VerticalAlignment="Center" Margin="24,0,0,0" />
21+ </DockPanel>
22+ </DataTemplate>
23+ </ code > </ pre >
24+
25+ < p > Autocomplete control</ p >
26+ < pre class ="language-markup "> < code class ="language-markup ">
27+ <mde:Autocomplete Style="{StaticResource MaterialDesignAutocomplete}"
28+ AutocompleteSource="{Binding Path=AutocompleteSource}"
29+ Hint="Which OS?"
30+ Margin="0,16,0,0"
31+ ItemTemplate="{StaticResource itemTemplate}" />
32+ </ code > </ pre >
33+
34+ < p > Autocomplete data source</ p >
35+ < pre class ="language-markup "> < code class ="language-markup ">
36+ public class AutocompleteViewModel : ViewModel
37+ {
38+ private IAutocompleteSource _autocompleteSource;
39+
40+ public IAutocompleteSource AutocompleteSource
41+ {
42+ get => _autocompleteSource;
43+ }
44+
45+ public AutocompleteViewModel() : base()
46+ {
47+ _autocompleteSource = new OperatingSystemAutocompleteSource();
48+ }
49+ }
50+
51+ public class OperatingSystemItem
52+ {
53+ public PackIconKind Icon { get; set; }
54+ public string Name { get; set; }
55+ public OperatingSystemItem() { }
56+ }
57+
58+ public class OperatingSystemAutocompleteSource : IAutocompleteSource
59+ {
60+ private List< OperatingSystemItem > _operatingSystemItems;
61+
62+ public OperatingSystemAutocompleteSource()
63+ {
64+ _operatingSystemItems = new List< OperatingSystemItem > ()
65+ {
66+ new OperatingSystemItem() { Icon = PackIconKind.MicrosoftWindows, Name = "Windows 7" },
67+ new OperatingSystemItem() { Icon = PackIconKind.MicrosoftWindows, Name = "Windows 8" },
68+ new OperatingSystemItem() { Icon = PackIconKind.MicrosoftWindows, Name = "Windows 8.1" },
69+ new OperatingSystemItem() { Icon = PackIconKind.MicrosoftWindows, Name = "Windows 10" }
70+ };
71+ }
72+
73+ public IEnumerable Search(string searchTerm)
74+ {
75+ searchTerm = searchTerm ?? string.Empty;
76+ searchTerm = searchTerm.ToLower();
77+
78+ return _operatingSystemItems.Where(item => item.Name.ToLower().Contains(searchTerm));
79+ }
80+ }
81+ </ code > </ pre >
82+ < script type ="text/javascript ">
83+ appViewModel . prepareCodeSnippets ( ) ;
84+ </ script >
85+ </ div >
0 commit comments