Browse Source

Скрываем подсказки когда выбрали производителя

Вадим Королёв 6 tháng trước cách đây
mục cha
commit
e7542d1385

+ 26 - 0
src/SASDesktop/ViewModels/Transport/Create.cs

@@ -30,6 +30,9 @@ namespace SASDesktop.ViewModels.Transport
                 // производителя, но фильтрации происходить не должно
                 _brandSearch = _selectedBrand.Name;
                 RaisePropertyChanged(nameof(BrandSearch));
+
+                // Скрываем подсказки
+                BrandSuggestionsVisible = false;
             }
         }
         // Предлагаемые производители
@@ -56,11 +59,34 @@ namespace SASDesktop.ViewModels.Transport
                     db.Brands.Where(b =>
                         string.IsNullOrWhiteSpace(_brandSearch) ||
                         b.Name.ToLower().Contains(_brandSearch.ToLower())
+                    )
                 );
 
                 RaisePropertyChanged(nameof(BrandSearch)); 
             }
         }
+        // Должны ли быть видны подсказки?
+        public bool BrandSuggestionsVisible { get; set; }
+        // Сфокусировано ли поле ввода в поиске?
+        private bool _brandSearchFocus;
+        public bool BrandSearchFocus
+        {
+            get => _brandSearchFocus;
+            set
+            {
+                _brandSearchFocus = value;
+
+                if (_brandSearchFocus == true)
+                {
+                    BrandSuggestionsVisible = true;
+                } else
+                {
+                    BrandSuggestionsVisible = false;
+                }
+                
+                RaisePropertyChanged(nameof(BrandSearchFocus));
+            }
+        }
 
         public Create() 
         {

+ 3 - 15
src/SASDesktop/Views/Transport/Create.xaml

@@ -51,25 +51,13 @@
                         <StackPanel>
                             <TextBox
                                 x:Name="tbBrand"
+                                IsFocused="{Binding BrandSearchFocus}"
                                 Text="{Binding BrandSearch,UpdateSourceTrigger=PropertyChanged}"/>
-                            <Popup 
+                            <Popup
+                                IsOpen="{Binding BrandSuggestionsVisible}"
                                 Placement="Bottom"
                                 Width="{Binding RelativeSource={RelativeSource Self},Path=PlacementTarget.ActualWidth}"
                                 PlacementTarget="{Binding ElementName=tbBrand}">
-                                <Popup.Style>
-                                    <Style TargetType="{x:Type Popup}">
-                                        <Setter 
-                                            Property="IsOpen"
-                                            Value="False" />
-                                        <Style.Triggers>
-                                            <DataTrigger 
-                                                Binding="{Binding ElementName=tbBrand,Path=IsFocused}"
-                                                Value="True">
-                                                <Setter Property="IsOpen" Value="True" />
-                                            </DataTrigger>
-                                        </Style.Triggers>
-                                    </Style>
-                                </Popup.Style>
                                 <ListBox
                                     ItemsSource="{Binding SuggestedBrands}"
                                     SelectedItem="{Binding SelectedBrand}">