Артем Гавриленко 3 lat temu
rodzic
commit
01e124fdec

+ 14 - 0
Kusach/Kusach.csproj

@@ -67,6 +67,9 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </ApplicationDefinition>
+    <Compile Include="Pages\DriversListPage.xaml.cs">
+      <DependentUpon>DriversListPage.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Windows\AddDriverWindow.xaml.cs">
       <DependentUpon>AddDriverWindow.xaml</DependentUpon>
     </Compile>
@@ -150,12 +153,19 @@
     <Compile Include="TestPGPage.xaml.cs">
       <DependentUpon>TestPGPage.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Windows\DriverEditWindow.xaml.cs">
+      <DependentUpon>DriverEditWindow.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Windows\PointEditWindow.xaml.cs">
       <DependentUpon>PointEditWindow.xaml</DependentUpon>
     </Compile>
     <Compile Include="Windows\RouteEditWindow.xaml.cs">
       <DependentUpon>RouteEditWindow.xaml</DependentUpon>
     </Compile>
+    <Page Include="Pages\DriversListPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Windows\AddDriverWindow.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
@@ -212,6 +222,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="Windows\DriverEditWindow.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Windows\PointEditWindow.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>

+ 1 - 1
Kusach/MainWindow.xaml.cs

@@ -42,7 +42,7 @@ namespace Kusach
 
         private void DriversButton_Click(object sender, RoutedEventArgs e)
         {
-            MainFrame.Content = new TestPGPage();
+            MainFrame.Content = new Pages.DriversListPage();
         }
         private void VehButton_Click(object sender, RoutedEventArgs e)
         {

+ 80 - 0
Kusach/Pages/DriversListPage.xaml

@@ -0,0 +1,80 @@
+<Page x:Class="Kusach.Pages.DriversListPage"
+      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:Kusach.Pages"
+      mc:Ignorable="d" 
+      d:DesignHeight="419"
+      d:DesignWidth="692"
+      Title="DriversListPage">
+    <Grid 
+        Background="White" 
+        Margin="25">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="4*"/>
+            <RowDefinition Height="21*"/>
+        </Grid.RowDefinitions>
+        <StackPanel Orientation="Horizontal">
+            <TextBox
+                Name="SearchBox"
+                PreviewMouseLeftButtonUp="SearchBoxPreviewMouseLeftButtonUp"
+                LostFocus="SearchLostFocus"
+                TextChanged="SearchTextChanged"
+                FontSize="14"
+                TextWrapping="Wrap"
+                Text="Поиск..." 
+                Width="120"/>
+            <Button
+                Width="120"
+                Content="Создать"
+                Click="AddDriverButton_Click"/>
+            <Button
+                Width="120"
+                Content="Удалить"
+                Click="DeleteDriversButton_Click"/>
+            <Button
+                Width="120"
+                Content="Обновить"
+                Click="UpdateDriversButton_Click"/>
+        </StackPanel>
+        <DataGrid
+            Name="DriversList" 
+            Grid.Row="1"
+            AutoGenerateColumns="False" 
+            VerticalAlignment="Top" 
+            HorizontalAlignment="Left" 
+            CanUserAddRows="false" Width="642">
+            <DataGrid.ItemContainerStyle>
+                <Style TargetType="DataGridRow">
+                    <EventSetter 
+                        Event="MouseDoubleClick" 
+                        Handler="DataGridRow_MouseDoubleClick"/>
+                </Style>
+            </DataGrid.ItemContainerStyle>
+            <DataGrid.Columns>
+                <DataGridTextColumn 
+                    Binding="{Binding IdDriver}" 
+                    Header="Номер"  
+                    Width="50" 
+                    IsReadOnly="True"/>
+                <DataGridTextColumn 
+                    Binding="{Binding Transport.NameOfTransport}" 
+                    Header="Транспортное средство" 
+                    IsReadOnly="True"/>
+                <DataGridTextColumn 
+                    Binding="{Binding Surname}" 
+                    Header="Фамилия" 
+                    IsReadOnly="True"/>
+                <DataGridTextColumn 
+                    Binding="{Binding Name}" 
+                    Header="Имя" 
+                    IsReadOnly="True"/>
+                <DataGridTextColumn 
+                    Binding="{Binding Patronymic}" 
+                    Header="Отчество" 
+                    IsReadOnly="True"/>
+            </DataGrid.Columns>
+        </DataGrid>
+    </Grid>
+</Page>

+ 69 - 0
Kusach/Pages/DriversListPage.xaml.cs

@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Kusach.Pages
+{
+    /// <summary>
+    /// Логика взаимодействия для DriversListPage.xaml
+    /// </summary>
+    public partial class DriversListPage : Page
+    {
+        public DriversListPage()
+        {
+            InitializeComponent();
+            DriversList.ItemsSource = cnt.db.Drivers.ToList();
+        }
+        private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
+        {
+            Windows.DriverEditWindow dew = new Windows.DriverEditWindow(((Drivers)DriversList.SelectedItem).IdDriver);
+            dew.Show();
+        }
+
+        #region Поиск
+        private void SearchBoxPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+            if (SearchBox.Text == "Поиск...")
+                SearchBox.Text = "";
+        }
+        private void SearchLostFocus(object sender, RoutedEventArgs e)
+        {
+            if (SearchBox.Text == "")
+                SearchBox.Text = "Поиск...";
+        }
+        private void SearchTextChanged(object sender, TextChangedEventArgs e)
+        {
+            if (SearchBox.Text != "" && SearchBox.Text != "Поиск...")
+                DriversList.ItemsSource = cnt.db.Drivers.Where(item => (item.IdDriver + " " + item.Transport.NameOfTransport + " " + item.Surname + " " + item.Name + " " + item.Patronymic).Contains(SearchBox.Text)).ToList();
+            else
+                cnt.db.Drivers.ToList();
+        }
+        #endregion
+        private void AddDriverButton_Click(object sender, RoutedEventArgs e)
+        {
+            AddDriverWindow adw = new AddDriverWindow();
+            adw.Show();
+        }
+
+        private void DeleteDriversButton_Click(object sender, RoutedEventArgs e)
+        {
+
+        }
+
+        private void UpdateDriversButton_Click(object sender, RoutedEventArgs e)
+        {
+            DriversList.ItemsSource = cnt.db.Drivers.ToList();
+        }
+    }
+}

+ 0 - 1
Kusach/Pages/RoutesListPage.xaml

@@ -61,7 +61,6 @@
                 <DataGridTextColumn 
                     Binding="{Binding Name}" 
                     Header="Название"
-                    Width="540"
                     IsReadOnly="True"/>
             </DataGrid.Columns>
         </DataGrid>

+ 89 - 0
Kusach/Windows/DriverEditWindow.xaml

@@ -0,0 +1,89 @@
+<Window x:Class="Kusach.Windows.DriverEditWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:Kusach.Windows"
+        mc:Ignorable="d"
+        Title="DriverEditWindow" 
+        Height="350" 
+        Width="300"
+        ResizeMode="NoResize"
+        WindowStyle="None"
+        WindowStartupLocation="CenterScreen">
+    <Grid>
+        <StackPanel
+            Margin="0,10,0,0"
+            HorizontalAlignment="Center"
+            VerticalAlignment="Top">
+            <Label 
+            Content="IdTransport" 
+            HorizontalAlignment="Left" 
+            VerticalAlignment="Top" 
+            Height="30" 
+            Width="190"/>
+            <TextBox 
+            x:Name="IdTransportBox"
+            HorizontalAlignment="Left" 
+            VerticalAlignment="Top" 
+            Height="30" 
+            Width="190"/>
+            <Label 
+            Content="Имя" 
+            HorizontalAlignment="Left" 
+            VerticalAlignment="Top" 
+            Height="30" 
+            Width="190"/>
+            <TextBox 
+            x:Name="NameBox"
+            HorizontalAlignment="Left" 
+            VerticalAlignment="Top" 
+            Height="30" 
+            Width="190"/>
+            <Label 
+                Content="Фамилия" 
+                HorizontalAlignment="Left" 
+                VerticalAlignment="Top" 
+                Height="30" 
+                Width="190"/>
+            <TextBox 
+                x:Name="SurnameBox"
+                HorizontalAlignment="Left" 
+                VerticalAlignment="Top" 
+                Height="30" 
+                Width="190"/>
+            <Label 
+                Content="Отчество" 
+                HorizontalAlignment="Left" 
+                VerticalAlignment="Top" 
+                Height="30" 
+                Width="190"/>
+            <TextBox 
+                x:Name="PatronymicBox"
+                HorizontalAlignment="Left" 
+                VerticalAlignment="Top" 
+                Height="30" 
+                Width="190"/>
+        </StackPanel>
+        <Button 
+            Content="Создать &#xD;&#xA;водителя" 
+            HorizontalAlignment="Left"
+            Margin="170,300,0,0" 
+            VerticalAlignment="Top" 
+            Height="40" 
+            Width="120" 
+            Click="SaveDriverButton_Click"/>
+        <Button 
+            Content="Отмена"
+            HorizontalAlignment="Left" 
+            Margin="10,300,0,0" 
+            VerticalAlignment="Top" 
+            Height="40" 
+            Width="120" 
+            Click="BackButton_Click"
+            IsDefault="True"/>
+        <Border 
+            BorderBrush="Black" 
+            BorderThickness="2"/>
+    </Grid>
+</Window>

+ 48 - 0
Kusach/Windows/DriverEditWindow.xaml.cs

@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace Kusach.Windows
+{
+    /// <summary>
+    /// Логика взаимодействия для DriverEditWindow.xaml
+    /// </summary>
+    public partial class DriverEditWindow : Window
+    {
+        int driverId;
+        public DriverEditWindow(int id)
+        {
+            InitializeComponent();
+            driverId = id;
+            IdTransportBox.Text = cnt.db.Drivers.Where(item => item.IdDriver == driverId).Select(item => item.IdTransport).FirstOrDefault().ToString();
+            SurnameBox.Text = cnt.db.Drivers.Where(item => item.IdDriver == driverId).Select(item => item.Surname).FirstOrDefault();
+            NameBox.Text = cnt.db.Drivers.Where(item => item.IdDriver == driverId).Select(item => item.Name).FirstOrDefault();
+            PatronymicBox.Text = cnt.db.Drivers.Where(item => item.IdDriver == driverId).Select(item => item.Patronymic).FirstOrDefault();
+        }
+        private void BackButton_Click(object sender, RoutedEventArgs e)
+        {
+            this.Close();
+        }
+        private void SaveDriverButton_Click(object sender, RoutedEventArgs e)
+        {
+            Drivers driver = cnt.db.Drivers.Where(item => item.IdDriver == driverId).FirstOrDefault();
+            driver.Name = NameBox.Text;
+            driver.IdTransport = Convert.ToInt32(IdTransportBox.Text);
+            driver.Surname = SurnameBox.Text;
+            driver.Name = NameBox.Text;
+            driver.Patronymic = PatronymicBox.Text;
+            cnt.db.SaveChanges();
+            this.Close();
+        }
+    }
+}