ebakhtin ac9984eec4 first | 6 maanden geleden | |
---|---|---|
.vs | 6 maanden geleden | |
Model | 6 maanden geleden | |
assets | 6 maanden geleden | |
bin | 6 maanden geleden | |
img | 6 maanden geleden | |
obj | 6 maanden geleden | |
App.xaml | 6 maanden geleden | |
App.xaml.cs | 6 maanden geleden | |
AssemblyInfo.cs | 6 maanden geleden | |
MainWindow.xaml | 6 maanden geleden | |
MainWindow.xaml.cs | 6 maanden geleden | |
readme.md | 6 maanden geleden | |
wpf_search_sort.csproj | 6 maanden geleden | |
wpf_search_sort.csproj.user | 6 maanden geleden | |
wpf_search_sort.sln | 6 maanden geleden |
XAML:
...
<Label
Content="Поиск"
VerticalAlignment="Center"/>
<TextBox
Width="180"
VerticalAlignment="Center"
x:Name="SearchFilterTextBox"
KeyUp="SearchFilterTextBox_KeyUp"/>
<Label
Content="Цена:"
VerticalAlignment="Center"/>
<RadioButton
GroupName="Price"
Tag="1"
Content="по возрастанию"
IsChecked="True"
Checked="RadioButton_Checked"
VerticalAlignment="Center"/>
<RadioButton
GroupName="Price"
Tag="2"
Content="по убыванию"
Checked="RadioButton_Checked"
VerticalAlignment="Center"/>
...
C#:
...
public IEnumerable<Product> ProductList
{
get
{
var res = _productList;
res = _productList
.Where(p =>(selectedCategory == "Все категории" || p.Category == selectedCategory))
.Where(p =>(selectedPrice == null || (p.Price>=selectedPrice.priceFrom && p.Price<selectedPrice.priceTo)))
.Where(p =>(selectedCompany == "Все компании" || p.Company == selectedCompany));
if (searchFilter != "")
res = res.Where(c => c.Title.IndexOf(searchFilter, StringComparison.OrdinalIgnoreCase) >= 0);
if (sortAsc) res = res.OrderBy(p => p.Price);
else res = res.OrderByDescending(p => p.Price);
return res;
}
set
{
_productList = value;
}
}
...
...
private string searchFilter = "";
private bool sortAsc = true;
private void SearchFilterTextBox_KeyUp(object sender, KeyEventArgs e)
{
searchFilter = SearchFilterTextBox.Text;
Invalidate();
}
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
sortAsc = (sender as RadioButton).Tag.ToString() == "1";
Invalidate();
}
...