Доделал поиск. Мб по коду, но так то работает.
This commit is contained in:
parent
7db0881977
commit
43903ceb95
@ -15,9 +15,17 @@
|
||||
Foreground="#FFFFFF"
|
||||
Margin="0,20,0,0" />
|
||||
|
||||
<!-- Поиск -->
|
||||
<TextBox x:Name="SearchTextBox"
|
||||
Width="560"
|
||||
VerticalAlignment="Top"
|
||||
Margin="0,60,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
TextChanged="SearchTextBox_TextChanged" />
|
||||
|
||||
<!-- Таблица для отображения -->
|
||||
<DataGrid x:Name="PhysicalPersonsDataGrid"
|
||||
Margin="20,60,20,80"
|
||||
Margin="20,100,20,80"
|
||||
AutoGenerateColumns="True"
|
||||
Background="#FFFFFF"
|
||||
Foreground="#000000" />
|
||||
|
@ -7,6 +7,7 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
public partial class DeletePhysicalPersonWindow : Window
|
||||
{
|
||||
private readonly IPhisicalPersonLogic _phisicalPersonLogic;
|
||||
private IEnumerable<PhisicalPersonViewModel> _allPersons; // Храним все записи для фильтрации
|
||||
|
||||
public DeletePhysicalPersonWindow(IPhisicalPersonLogic phisicalPersonLogic)
|
||||
{
|
||||
@ -17,7 +18,8 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
|
||||
private void LoadPhysicalPersons()
|
||||
{
|
||||
PhysicalPersonsDataGrid.ItemsSource = _phisicalPersonLogic.GetFullList();
|
||||
_allPersons = _phisicalPersonLogic.GetFullList();
|
||||
PhysicalPersonsDataGrid.ItemsSource = _allPersons;
|
||||
}
|
||||
|
||||
private void DeleteButton_Click(object sender, RoutedEventArgs e)
|
||||
@ -36,5 +38,29 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
MessageBox.Show("Пожалуйста, выберите физическое лицо для удаления.");
|
||||
}
|
||||
}
|
||||
|
||||
private void SearchTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
|
||||
{
|
||||
string searchQuery = SearchTextBox.Text.ToLower(); // Получаем текст для поиска
|
||||
|
||||
if (string.IsNullOrWhiteSpace(searchQuery))
|
||||
{
|
||||
// Если поле пустое, показываем все записи
|
||||
PhysicalPersonsDataGrid.ItemsSource = _allPersons;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Фильтруем записи по всем полям
|
||||
var filteredList = _allPersons.Where(p =>
|
||||
p.FullName.ToLower().Contains(searchQuery) || // Поиск по ФИО
|
||||
p.Address.ToLower().Contains(searchQuery) || // Поиск по адресу
|
||||
p.Telephone.Contains(searchQuery) || // Поиск по телефону
|
||||
p.Gender.ToLower().Contains(searchQuery) || // Поиск по полу
|
||||
p.Birthday.ToString("dd.MM.yyyy").Contains(searchQuery) // Поиск по дате рождения
|
||||
).ToList();
|
||||
|
||||
PhysicalPersonsDataGrid.ItemsSource = filteredList;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
Background="#0D2D4F">
|
||||
|
||||
<Grid>
|
||||
|
||||
<!-- Заголовок окна -->
|
||||
<TextBlock Text="Редактирование физического лица"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Top"
|
||||
@ -16,10 +15,7 @@
|
||||
Foreground="#FFFFFF"
|
||||
Margin="0,20,0,0" />
|
||||
|
||||
<!-- Остальная часть как в AddPhysicalPersonWindow.xaml -->
|
||||
<!-- Сетка для ввода данных в два столбца -->
|
||||
<Grid Margin="0,60">
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
@ -107,7 +103,20 @@
|
||||
Margin="0,5"
|
||||
ToolTip="Введите номер телефона" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для поиска физических лиц -->
|
||||
<StackPanel Grid.Row="3" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Поиск физического лица" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<TextBox x:Name="SearchTextBox"
|
||||
Width="250" Height="40"
|
||||
Margin="0,5"
|
||||
ToolTip="Введите для поиска"
|
||||
HorizontalAlignment="Center"
|
||||
TextChanged="SearchTextBox_TextChanged"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для выбора физического лица -->
|
||||
<StackPanel Grid.Row="4" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Выберите физическое лицо" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<ComboBox x:Name="PhysicalPersonComboBox"
|
||||
Width="400" Height="40"
|
||||
@ -116,7 +125,6 @@
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
|
||||
<!-- Кнопка для сохранения изменений -->
|
||||
<Button Content="Сохранить изменения"
|
||||
Width="250" Height="40"
|
||||
@ -125,6 +133,5 @@
|
||||
Background="#004890" Foreground="#FFFFFF"
|
||||
Click="SaveButton_Click"
|
||||
HorizontalAlignment="Center" Margin="0,10,0,10"/>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
|
@ -52,6 +52,23 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
}
|
||||
}
|
||||
|
||||
// Фильтрация списка физических лиц по всем полям
|
||||
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
var searchText = SearchTextBox.Text.ToLower();
|
||||
var filteredPersons = _physicalPersons
|
||||
.Where(p => p.Name.ToLower().Contains(searchText) ||
|
||||
p.Surname.ToLower().Contains(searchText) ||
|
||||
p.Patronymic.ToLower().Contains(searchText) ||
|
||||
p.Gender.ToLower().Contains(searchText) ||
|
||||
p.Address.ToLower().Contains(searchText) ||
|
||||
p.Telephone.ToLower().Contains(searchText) ||
|
||||
p.Birthday.ToString("dd.MM.yyyy").Contains(searchText) // Поиск по дате рождения
|
||||
).ToList();
|
||||
|
||||
PhysicalPersonComboBox.ItemsSource = filteredPersons;
|
||||
}
|
||||
|
||||
private void SaveButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (PhysicalPersonComboBox.SelectedValue is int selectedPersonId)
|
||||
|
@ -15,9 +15,17 @@
|
||||
Foreground="#FFFFFF"
|
||||
Margin="0,20,0,0" />
|
||||
|
||||
<!-- Поиск -->
|
||||
<TextBox x:Name="SearchTextBox"
|
||||
Width="560"
|
||||
VerticalAlignment="Top"
|
||||
Margin="0,60,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
TextChanged="SearchTextBox_TextChanged" Height="20" />
|
||||
|
||||
<!-- Таблица для отображения -->
|
||||
<DataGrid x:Name="PhysicalPersonsDataGrid"
|
||||
Margin="20,60,20,20"
|
||||
Margin="20,100,20,20"
|
||||
AutoGenerateColumns="True"
|
||||
Background="#FFFFFF"
|
||||
Foreground="#000000" />
|
||||
|
@ -1,4 +1,6 @@
|
||||
using EmployeeManagmentContracts.BusinessLogicContracts;
|
||||
using EmployeeManagmentContracts.ViewModels;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
|
||||
namespace EmployeeManagmentView.PhysicalPerson
|
||||
@ -6,6 +8,7 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
public partial class ViewPhysicalPersonsWindow : Window
|
||||
{
|
||||
private readonly IPhisicalPersonLogic _phisicalPersonLogic;
|
||||
private IEnumerable<PhisicalPersonViewModel> _allPersons; // Храним все записи для фильтрации
|
||||
|
||||
public ViewPhysicalPersonsWindow(IPhisicalPersonLogic phisicalPersonLogic)
|
||||
{
|
||||
@ -16,7 +19,34 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
|
||||
private void LoadPhysicalPersons()
|
||||
{
|
||||
PhysicalPersonsDataGrid.ItemsSource = _phisicalPersonLogic.GetFullList();
|
||||
_allPersons = _phisicalPersonLogic.GetFullList();
|
||||
PhysicalPersonsDataGrid.ItemsSource = _allPersons;
|
||||
}
|
||||
|
||||
private void SearchTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
|
||||
{
|
||||
string searchQuery = SearchTextBox.Text.ToLower(); // Получаем текст для поиска
|
||||
|
||||
if (string.IsNullOrWhiteSpace(searchQuery))
|
||||
{
|
||||
// Если поле пустое, показываем все записи
|
||||
PhysicalPersonsDataGrid.ItemsSource = _allPersons;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Фильтруем записи по всем полям
|
||||
var filteredList = _allPersons.Where(p =>
|
||||
p.Name.ToLower().Contains(searchQuery) ||
|
||||
p.Surname.ToLower().Contains(searchQuery) ||
|
||||
p.Patronymic.ToLower().Contains(searchQuery) || // Поиск по ФИО
|
||||
p.Address.ToLower().Contains(searchQuery) || // Поиск по адресу
|
||||
p.Telephone.Contains(searchQuery) || // Поиск по телефону
|
||||
p.Gender.ToLower().Contains(searchQuery) || // Поиск по полу
|
||||
p.Birthday.ToString("dd.MM.yyyy").Contains(searchQuery) // Поиск по дате рождения
|
||||
).ToList();
|
||||
|
||||
PhysicalPersonsDataGrid.ItemsSource = filteredList;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user