|
@@ -25,14 +25,10 @@ namespace SASDesktop.ViewModels.Transport
|
|
|
get { return _selectedBrand; }
|
|
|
set {
|
|
|
_selectedBrand = value;
|
|
|
-
|
|
|
// В поле ввода производителя должно подставиться имя
|
|
|
// производителя, но фильтрации происходить не должно
|
|
|
- _brandSearch = _selectedBrand.Name;
|
|
|
+ _brandSearch = _selectedBrand != null ? _selectedBrand.Name : "";
|
|
|
RaisePropertyChanged(nameof(BrandSearch));
|
|
|
-
|
|
|
- // Скрываем подсказки
|
|
|
- BrandSuggestionsVisible = false;
|
|
|
}
|
|
|
}
|
|
|
// Предлагаемые производители
|
|
@@ -50,23 +46,25 @@ namespace SASDesktop.ViewModels.Transport
|
|
|
set
|
|
|
{
|
|
|
_brandSearch = value;
|
|
|
-
|
|
|
- // Обновление подсказок
|
|
|
- // Если value - пустая строка, то в список попадают все
|
|
|
- // сущности
|
|
|
- var db = new Models.SASEntities();
|
|
|
- SuggestedBrands = new List<Models.Brand>(
|
|
|
- db.Brands.Where(b =>
|
|
|
- string.IsNullOrWhiteSpace(_brandSearch) ||
|
|
|
- b.Name.ToLower().Contains(_brandSearch.ToLower())
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
+ UpdateBrandSuggestions();
|
|
|
RaisePropertyChanged(nameof(BrandSearch));
|
|
|
}
|
|
|
}
|
|
|
// Должны ли быть видны подсказки?
|
|
|
- public bool BrandSuggestionsVisible { get; set; }
|
|
|
+ private bool _brandSuggestionsVisible;
|
|
|
+ public bool BrandSuggestionsVisible
|
|
|
+ {
|
|
|
+ get { return _brandSuggestionsVisible; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ _brandSuggestionsVisible = value;
|
|
|
+ if (value == true)
|
|
|
+ {
|
|
|
+ UpdateBrandSuggestions();
|
|
|
+ }
|
|
|
+ RaisePropertyChanged(nameof(BrandSuggestionsVisible));
|
|
|
+ }
|
|
|
+ }
|
|
|
// Сфокусировано ли поле ввода в поиске?
|
|
|
private bool _brandSearchFocus;
|
|
|
public bool BrandSearchFocus
|
|
@@ -91,7 +89,27 @@ namespace SASDesktop.ViewModels.Transport
|
|
|
public Create()
|
|
|
{
|
|
|
var db = new Models.SASEntities();
|
|
|
+ _selectedBrand = null;
|
|
|
_suggestedBrands = new List<Models.Brand>();
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Обновляет подсказки производителей
|
|
|
+ /// </summary>
|
|
|
+ private void UpdateBrandSuggestions()
|
|
|
+ {
|
|
|
+ var db = new Models.SASEntities();
|
|
|
+ if (string.IsNullOrWhiteSpace(_brandSearch))
|
|
|
+ {
|
|
|
+ // Если _brandSearch - пустая строка, то в список попадают все сущности
|
|
|
+ SuggestedBrands = new List<Models.Brand>(db.Brands);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SuggestedBrands = new List<Models.Brand>(
|
|
|
+ db.Brands.Where(b => b.Name.ToLower().Contains(_brandSearch.ToLower()))
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|