-
Notifications
You must be signed in to change notification settings - Fork 296
/
FindSymbolControl.xaml
70 lines (63 loc) · 3.7 KB
/
FindSymbolControl.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<UserControl x:Class="Rubberduck.UI.FindSymbol.FindSymbolControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Rubberduck.UI.FindSymbol"
xmlns:converters="clr-namespace:Rubberduck.UI.Converters"
mc:Ignorable="d"
d:DesignHeight="24" d:DesignWidth="270"
d:DataContext="{d:DesignInstance {x:Type local:FindSymbolViewModel}, IsDesignTimeCreatable=False}">
<UserControl.CommandBindings>
<CommandBinding Command="local:FindSymbolControl.GoCommand"
Executed="CommandBinding_OnExecuted"
CanExecute="CommandBinding_OnCanExecute"/>
</UserControl.CommandBindings>
<UserControl.Resources>
<BitmapImage x:Key="ArrowImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/arrow.png" />
<local:SearchBoxMultiBindingConverter x:Key="SearchBoxTextConverter" />
<converters:DeclarationToIconConverter x:Key="IconConverter" />
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="32" />
</Grid.ColumnDefinitions>
<ComboBox x:Name="searchComboBox"
IsEditable="True"
ItemsSource="{Binding MatchResults}"
SelectedItem="{Binding SelectedItem}"
IsTextSearchCaseSensitive="False"
IsTextSearchEnabled="True"
TextSearch.TextPath="IdentifierName">
<ComboBox.Resources>
<KeyBinding x:Key="EnterGo" Key="Return" Command="{Binding GoCommand}" />
</ComboBox.Resources>
<ComboBox.Text>
<MultiBinding Converter="{StaticResource SearchBoxTextConverter}">
<Binding Path="SearchString" Mode="OneWayToSource" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="SelectedItem.IdentifierName" Mode="OneWay" UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</ComboBox.Text>
<ComboBox.ItemTemplate>
<DataTemplate DataType="local:SearchResult">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="24" />
<ColumnDefinition MinWidth="168" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Height="16" Width="16" Margin="2" HorizontalAlignment="Center"
Source="{Binding Declaration, Converter={StaticResource IconConverter}, Mode=OneTime}"
ToolTip="{Binding Declaration.DeclarationType}" />
<TextBlock Grid.Column="1" Text="{Binding IdentifierName}" FontWeight="Bold" MinWidth="160" VerticalAlignment="Center" />
<TextBlock Grid.Column="2" Text="{Binding Location}" Margin="8,0" Foreground="Gray" FontStyle="Italic" VerticalAlignment="Center" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Button Grid.Column="1" Command="local:FindSymbolControl.GoCommand">
<Image Height="16" Width="16" Source="{StaticResource ArrowImage}" />
</Button>
</Grid>
</UserControl>