ebakhtin 6 місяців тому
коміт
658aa3abc2
100 змінених файлів з 1500 додано та 0 видалено
  1. BIN
      .vs/333/FileContentIndex/3dedf0f2-885c-48f5-b8fa-316d51467a25.vsidx
  2. BIN
      .vs/333/v17/.wsuo
  3. 23 0
      .vs/333/v17/DocumentLayout.json
  4. BIN
      .vs/ProjectEvaluation/wpf_data_csv.metadata.v7.bin
  5. BIN
      .vs/ProjectEvaluation/wpf_data_csv.projects.v7.bin
  6. BIN
      .vs/ProjectEvaluation/wpf_filtering.metadata.v7.bin
  7. BIN
      .vs/ProjectEvaluation/wpf_filtering.projects.v7.bin
  8. BIN
      .vs/ProjectEvaluation/wpf_search_sort.metadata.v7.bin
  9. BIN
      .vs/ProjectEvaluation/wpf_search_sort.projects.v7.bin
  10. BIN
      .vs/ProjectEvaluation/wpf_template.metadata.v7.bin
  11. BIN
      .vs/ProjectEvaluation/wpf_template.projects.v7.bin
  12. 3 0
      .vs/ProjectSettings.json
  13. 7 0
      .vs/VSWorkspaceState.json
  14. BIN
      .vs/slnx.sqlite
  15. BIN
      .vs/wpf_data_csv/DesignTimeBuild/.dtbcache.v2
  16. BIN
      .vs/wpf_data_csv/FileContentIndex/0c0ffcfc-c221-4880-995f-727e471b4b59.vsidx
  17. BIN
      .vs/wpf_data_csv/FileContentIndex/a0a29587-7057-4d5d-b00b-d51140e1ff23.vsidx
  18. BIN
      .vs/wpf_data_csv/FileContentIndex/ec08cc8f-a909-4730-910a-cb4e03c87d96.vsidx
  19. BIN
      .vs/wpf_data_csv/v17/.futdcache.v2
  20. BIN
      .vs/wpf_data_csv/v17/.suo
  21. BIN
      .vs/wpf_data_csv/v17/.wsuo
  22. BIN
      .vs/wpf_filtering/DesignTimeBuild/.dtbcache.v2
  23. BIN
      .vs/wpf_filtering/FileContentIndex/113a89ff-a931-4e8d-862a-01f3c86a443e.vsidx
  24. BIN
      .vs/wpf_filtering/FileContentIndex/1e28b45a-6157-45cd-b72a-ab2c1210d6de.vsidx
  25. BIN
      .vs/wpf_filtering/FileContentIndex/55b5e32a-b0cc-42fd-bb18-c0fcf1e53857.vsidx
  26. BIN
      .vs/wpf_filtering/FileContentIndex/775bafd6-96fc-4bc6-8617-fd9c392a1fae.vsidx
  27. BIN
      .vs/wpf_filtering/FileContentIndex/906c827d-01d6-4857-9ef5-875cc3e54e2c.vsidx
  28. BIN
      .vs/wpf_filtering/v17/.futdcache.v2
  29. BIN
      .vs/wpf_filtering/v17/.suo
  30. 91 0
      .vs/wpf_filtering/v17/DocumentLayout.json
  31. BIN
      .vs/wpf_search_sort/DesignTimeBuild/.dtbcache.v2
  32. BIN
      .vs/wpf_search_sort/FileContentIndex/bca124dd-befa-4245-b46e-5ba3fe3ad3f3.vsidx
  33. BIN
      .vs/wpf_search_sort/v17/.futdcache.v2
  34. BIN
      .vs/wpf_search_sort/v17/.suo
  35. BIN
      .vs/wpf_template/FileContentIndex/0668294a-0a57-4f75-a6ca-1ad8b3f8a3e8.vsidx
  36. BIN
      .vs/wpf_template/FileContentIndex/1a079fb6-60c8-4ed0-9e56-f41f8de9336a.vsidx
  37. BIN
      .vs/wpf_template/FileContentIndex/1a6fb3aa-084d-4e24-bffd-ecd71e93fa24.vsidx
  38. BIN
      .vs/wpf_template/FileContentIndex/2ae58230-2823-4c45-affb-9864c9a0915d.vsidx
  39. BIN
      .vs/wpf_template/FileContentIndex/cd8c661f-c4c5-4b79-aa00-86662615a392.vsidx
  40. 9 0
      App.xaml
  41. 14 0
      App.xaml.cs
  42. 10 0
      AssemblyInfo.cs
  43. 156 0
      MainWindow.xaml
  44. 114 0
      MainWindow.xaml.cs
  45. 243 0
      Model/PhoneClass.cs
  46. BIN
      assets/nagievlogo1.jpg
  47. BIN
      assets/nagievlogo2.jpg
  48. BIN
      bin/Debug/net8.0-windows/CsvHelper.dll
  49. 13 0
      bin/Debug/net8.0-windows/products.csv
  50. 41 0
      bin/Debug/net8.0-windows/wpf_data_csv.deps.json
  51. BIN
      bin/Debug/net8.0-windows/wpf_data_csv.dll
  52. BIN
      bin/Debug/net8.0-windows/wpf_data_csv.exe
  53. BIN
      bin/Debug/net8.0-windows/wpf_data_csv.pdb
  54. 18 0
      bin/Debug/net8.0-windows/wpf_data_csv.runtimeconfig.json
  55. 23 0
      bin/Debug/net8.0-windows/wpf_filtering.deps.json
  56. BIN
      bin/Debug/net8.0-windows/wpf_filtering.dll
  57. BIN
      bin/Debug/net8.0-windows/wpf_filtering.exe
  58. BIN
      bin/Debug/net8.0-windows/wpf_filtering.pdb
  59. 18 0
      bin/Debug/net8.0-windows/wpf_filtering.runtimeconfig.json
  60. 41 0
      bin/Debug/net8.0-windows/wpf_search_sort.deps.json
  61. BIN
      bin/Debug/net8.0-windows/wpf_search_sort.dll
  62. BIN
      bin/Debug/net8.0-windows/wpf_search_sort.exe
  63. BIN
      bin/Debug/net8.0-windows/wpf_search_sort.pdb
  64. 18 0
      bin/Debug/net8.0-windows/wpf_search_sort.runtimeconfig.json
  65. 23 0
      bin/Debug/net8.0-windows/wpf_template.deps.json
  66. BIN
      bin/Debug/net8.0-windows/wpf_template.dll
  67. BIN
      bin/Debug/net8.0-windows/wpf_template.exe
  68. BIN
      bin/Debug/net8.0-windows/wpf_template.pdb
  69. 18 0
      bin/Debug/net8.0-windows/wpf_template.runtimeconfig.json
  70. BIN
      img/result.png
  71. 4 0
      obj/Debug/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
  72. 71 0
      obj/Debug/net8.0-windows/App.g.cs
  73. 71 0
      obj/Debug/net8.0-windows/App.g.i.cs
  74. BIN
      obj/Debug/net8.0-windows/MainWindow.baml
  75. 180 0
      obj/Debug/net8.0-windows/MainWindow.g.cs
  76. 180 0
      obj/Debug/net8.0-windows/MainWindow.g.i.cs
  77. BIN
      obj/Debug/net8.0-windows/apphost.exe
  78. BIN
      obj/Debug/net8.0-windows/ref/wpf_data_csv.dll
  79. BIN
      obj/Debug/net8.0-windows/ref/wpf_filtering.dll
  80. BIN
      obj/Debug/net8.0-windows/ref/wpf_search_sort.dll
  81. BIN
      obj/Debug/net8.0-windows/ref/wpf_template.dll
  82. BIN
      obj/Debug/net8.0-windows/refint/wpf_data_csv.dll
  83. BIN
      obj/Debug/net8.0-windows/refint/wpf_filtering.dll
  84. BIN
      obj/Debug/net8.0-windows/refint/wpf_search_sort.dll
  85. BIN
      obj/Debug/net8.0-windows/refint/wpf_template.dll
  86. 25 0
      obj/Debug/net8.0-windows/wpf_csv_data.AssemblyInfo.cs
  87. 1 0
      obj/Debug/net8.0-windows/wpf_csv_data.AssemblyInfoInputs.cache
  88. 13 0
      obj/Debug/net8.0-windows/wpf_csv_data.GeneratedMSBuildEditorConfig.editorconfig
  89. 6 0
      obj/Debug/net8.0-windows/wpf_csv_data.GlobalUsings.g.cs
  90. BIN
      obj/Debug/net8.0-windows/wpf_csv_data.assets.cache
  91. BIN
      obj/Debug/net8.0-windows/wpf_csv_data.csproj.AssemblyReference.cache
  92. 20 0
      obj/Debug/net8.0-windows/wpf_csv_data_MarkupCompile.i.cache
  93. 25 0
      obj/Debug/net8.0-windows/wpf_data_csv.AssemblyInfo.cs
  94. 1 0
      obj/Debug/net8.0-windows/wpf_data_csv.AssemblyInfoInputs.cache
  95. 13 0
      obj/Debug/net8.0-windows/wpf_data_csv.GeneratedMSBuildEditorConfig.editorconfig
  96. 6 0
      obj/Debug/net8.0-windows/wpf_data_csv.GlobalUsings.g.cs
  97. BIN
      obj/Debug/net8.0-windows/wpf_data_csv.assets.cache
  98. BIN
      obj/Debug/net8.0-windows/wpf_data_csv.csproj.AssemblyReference.cache
  99. 0 0
      obj/Debug/net8.0-windows/wpf_data_csv.csproj.BuildWithSkipAnalyzers
  100. 1 0
      obj/Debug/net8.0-windows/wpf_data_csv.csproj.CoreCompileInputs.cache

BIN
.vs/333/FileContentIndex/3dedf0f2-885c-48f5-b8fa-316d51467a25.vsidx


BIN
.vs/333/v17/.wsuo


+ 23 - 0
.vs/333/v17/DocumentLayout.json

@@ -0,0 +1,23 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\",
+  "Documents": [],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": -1,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

BIN
.vs/ProjectEvaluation/wpf_data_csv.metadata.v7.bin


BIN
.vs/ProjectEvaluation/wpf_data_csv.projects.v7.bin


BIN
.vs/ProjectEvaluation/wpf_filtering.metadata.v7.bin


BIN
.vs/ProjectEvaluation/wpf_filtering.projects.v7.bin


BIN
.vs/ProjectEvaluation/wpf_search_sort.metadata.v7.bin


BIN
.vs/ProjectEvaluation/wpf_search_sort.projects.v7.bin


BIN
.vs/ProjectEvaluation/wpf_template.metadata.v7.bin


BIN
.vs/ProjectEvaluation/wpf_template.projects.v7.bin


+ 3 - 0
.vs/ProjectSettings.json

@@ -0,0 +1,3 @@
+{
+  "CurrentProjectSetting": null
+}

+ 7 - 0
.vs/VSWorkspaceState.json

@@ -0,0 +1,7 @@
+{
+  "ExpandedNodes": [
+    "",
+    "\\Model"
+  ],
+  "PreviewInSolutionExplorer": false
+}

BIN
.vs/slnx.sqlite


BIN
.vs/wpf_data_csv/DesignTimeBuild/.dtbcache.v2


BIN
.vs/wpf_data_csv/FileContentIndex/0c0ffcfc-c221-4880-995f-727e471b4b59.vsidx


BIN
.vs/wpf_data_csv/FileContentIndex/a0a29587-7057-4d5d-b00b-d51140e1ff23.vsidx


BIN
.vs/wpf_data_csv/FileContentIndex/ec08cc8f-a909-4730-910a-cb4e03c87d96.vsidx


BIN
.vs/wpf_data_csv/v17/.futdcache.v2


BIN
.vs/wpf_data_csv/v17/.suo


BIN
.vs/wpf_data_csv/v17/.wsuo


BIN
.vs/wpf_filtering/DesignTimeBuild/.dtbcache.v2


BIN
.vs/wpf_filtering/FileContentIndex/113a89ff-a931-4e8d-862a-01f3c86a443e.vsidx


BIN
.vs/wpf_filtering/FileContentIndex/1e28b45a-6157-45cd-b72a-ab2c1210d6de.vsidx


BIN
.vs/wpf_filtering/FileContentIndex/55b5e32a-b0cc-42fd-bb18-c0fcf1e53857.vsidx


BIN
.vs/wpf_filtering/FileContentIndex/775bafd6-96fc-4bc6-8617-fd9c392a1fae.vsidx


BIN
.vs/wpf_filtering/FileContentIndex/906c827d-01d6-4857-9ef5-875cc3e54e2c.vsidx


BIN
.vs/wpf_filtering/v17/.futdcache.v2


BIN
.vs/wpf_filtering/v17/.suo


+ 91 - 0
.vs/wpf_filtering/v17/DocumentLayout.json

@@ -0,0 +1,91 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_filtering.csproj|c:\\users\\boooo\\onedrive\\desktop\\oap_labs\\333\\readme.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}",
+      "RelativeMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_filtering.csproj|solutionrelative:readme.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_search_sort.csproj|c:\\users\\boooo\\onedrive\\desktop\\oap_labs\\333\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_search_sort.csproj|solutionrelative:mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_search_sort.csproj|c:\\users\\boooo\\onedrive\\desktop\\oap_labs\\333\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
+      "RelativeMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_search_sort.csproj|solutionrelative:mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_search_sort.csproj|c:\\users\\boooo\\onedrive\\desktop\\oap_labs\\333\\model\\phoneclass.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{70FBD942-628F-4E82-9DCE-F11802729737}|wpf_search_sort.csproj|solutionrelative:model\\phoneclass.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 4,
+          "Children": [
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "PhoneClass.cs",
+              "DocumentMoniker": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\Model\\PhoneClass.cs",
+              "RelativeDocumentMoniker": "Model\\PhoneClass.cs",
+              "ToolTip": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\Model\\PhoneClass.cs",
+              "RelativeToolTip": "Model\\PhoneClass.cs",
+              "ViewState": "AQIAACQAAAAAAAAAAAAiwAAAAAAAAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-05-05T16:37:00.308Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "MainWindow.xaml",
+              "DocumentMoniker": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\MainWindow.xaml",
+              "RelativeDocumentMoniker": "MainWindow.xaml",
+              "ToolTip": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\MainWindow.xaml",
+              "RelativeToolTip": "MainWindow.xaml",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
+              "WhenOpened": "2024-05-05T16:36:18.475Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "MainWindow.xaml.cs",
+              "DocumentMoniker": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\MainWindow.xaml.cs",
+              "RelativeDocumentMoniker": "MainWindow.xaml.cs",
+              "ToolTip": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\MainWindow.xaml.cs",
+              "RelativeToolTip": "MainWindow.xaml.cs",
+              "ViewState": "AQIAAE8AAAAAAAAAAAAswFgAAAAAAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-05-05T16:36:36.059Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "readme.md",
+              "DocumentMoniker": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\readme.md",
+              "RelativeDocumentMoniker": "readme.md",
+              "ToolTip": "C:\\Users\\boooo\\OneDrive\\Desktop\\oap_labs\\333\\readme.md",
+              "RelativeToolTip": "readme.md",
+              "ViewState": "AQIAACsAAAAAAAAAAAAYwFEAAAAWAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|",
+              "WhenOpened": "2024-05-05T16:35:22.795Z",
+              "EditorCaption": ""
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

BIN
.vs/wpf_search_sort/DesignTimeBuild/.dtbcache.v2


BIN
.vs/wpf_search_sort/FileContentIndex/bca124dd-befa-4245-b46e-5ba3fe3ad3f3.vsidx


BIN
.vs/wpf_search_sort/v17/.futdcache.v2


BIN
.vs/wpf_search_sort/v17/.suo


BIN
.vs/wpf_template/FileContentIndex/0668294a-0a57-4f75-a6ca-1ad8b3f8a3e8.vsidx


BIN
.vs/wpf_template/FileContentIndex/1a079fb6-60c8-4ed0-9e56-f41f8de9336a.vsidx


BIN
.vs/wpf_template/FileContentIndex/1a6fb3aa-084d-4e24-bffd-ecd71e93fa24.vsidx


BIN
.vs/wpf_template/FileContentIndex/2ae58230-2823-4c45-affb-9864c9a0915d.vsidx


BIN
.vs/wpf_template/FileContentIndex/cd8c661f-c4c5-4b79-aa00-86662615a392.vsidx


+ 9 - 0
App.xaml

@@ -0,0 +1,9 @@
+<Application x:Class="wpf_template.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:local="clr-namespace:wpf_template"
+             StartupUri="MainWindow.xaml">
+    <Application.Resources>
+         
+    </Application.Resources>
+</Application>

+ 14 - 0
App.xaml.cs

@@ -0,0 +1,14 @@
+using System.Configuration;
+using System.Data;
+using System.Windows;
+
+namespace wpf_template
+{
+    /// <summary>
+    /// Interaction logic for App.xaml
+    /// </summary>
+    public partial class App : Application
+    {
+    }
+
+}

+ 10 - 0
AssemblyInfo.cs

@@ -0,0 +1,10 @@
+using System.Windows;
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None,            //where theme specific resource dictionaries are located
+                                                //(used if a resource is not found in the page,
+                                                // or application resource dictionaries)
+    ResourceDictionaryLocation.SourceAssembly   //where the generic resource dictionary is located
+                                                //(used if a resource is not found in the page,
+                                                // app, or any theme specific resource dictionaries)
+)]

+ 156 - 0
MainWindow.xaml

@@ -0,0 +1,156 @@
+<Window x:Class="wpf_template.MainWindow"
+        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:wpf_template"
+        mc:Ignorable="d"
+        Title="MainWindow" Height="450" Width="950">
+    
+    <Grid ShowGridLines="True">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="auto"/>
+            <RowDefinition />
+            <RowDefinition Height="auto"/>
+        </Grid.RowDefinitions>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="200"/>
+            <ColumnDefinition/>
+        </Grid.ColumnDefinitions>
+
+
+        <Image 
+         Source="assets/nagievlogo2.jpg"
+         Grid.Row="1"
+         Grid.RowSpan="2"/>
+
+        <StackPanel 
+        Orientation="Vertical"
+        Grid.RowSpan="3"
+        Grid.Row="2"
+        VerticalAlignment="Bottom">
+            <Button 
+            x:Name="ExitButton"
+            Content="Выход" 
+            Click="ExitButton_Click"
+            Height="50"/>
+        </StackPanel>
+
+        <DataGrid
+            Grid.Row="1"
+            Grid.Column="1"
+            CanUserAddRows="False"
+            AutoGenerateColumns="False"
+            ItemsSource="{Binding ProductList}">
+            <DataGrid.Columns>
+                <DataGridTextColumn
+                Header="Категория"
+                Binding="{Binding Category}"/>
+                <DataGridTextColumn
+                Header="Компания"
+                Binding="{Binding Company}"/>
+                <DataGridTextColumn
+                Header="Название"
+                Binding="{Binding Title}"/>
+                <DataGridTextColumn
+                Header="Цена"
+                Binding="{Binding Price}"/>
+                <DataGridTextColumn
+                Header="Наличие"
+                Binding="{Binding ExistenceString}"/>
+                <DataGridTextColumn
+                Header="Дата поступления"
+                Binding="{Binding ArrivalDate,StringFormat='dd.MM.yyyy'}"/>
+                <DataGridTextColumn
+                Header="Оценка"
+                Binding="{Binding Rating}"/>
+            </DataGrid.Columns>
+        </DataGrid>
+
+        <WrapPanel
+            Orientation="Horizontal"
+            Grid.Column="1"
+            MinHeight="50"
+            Margin="0 5 0 0">
+            <Label
+                Content="Категория:"
+                VerticalAlignment="Center"/>
+
+            <ComboBox
+                Name="CategoryFilterComboBox"
+                SelectionChanged="CategoryFilterComboBox_SelectionChanged"
+                VerticalAlignment="Center"
+                MinWidth="100"
+                SelectedIndex="0"
+                ItemsSource="{Binding CategoryList}">
+
+                <ComboBox.ItemTemplate>
+                    <DataTemplate>
+                        <Label
+                            Content="{Binding title}"/>
+                    </DataTemplate>
+                </ComboBox.ItemTemplate>
+            </ComboBox>
+
+            <Label
+                Content="Цена"/>
+            <ComboBox
+                Name ="PriceFilterComboBox"
+                SelectionChanged="PriceFilterComboBox_SelectionChanged"
+                VerticalAlignment="Center"
+                MinWidth="100"
+                SelectedIndex="0"
+                ItemsSource="{Binding ProductPrices}">
+                <ComboBox.ItemTemplate>
+                    <DataTemplate>
+                        <Label
+                            Content="{Binding title}"/>
+                    </DataTemplate>
+                </ComboBox.ItemTemplate>
+            </ComboBox>
+
+            <Label
+                Content="Компания"/>
+            <ComboBox
+                Name ="CompanyFilterComboBox"
+                SelectionChanged="CompanyFilterComboBox_SelectionChanged"
+                VerticalAlignment="Center"
+                MinWidth="100"
+                SelectedIndex="0"
+                ItemsSource="{Binding ProductCompanies}">
+                <ComboBox.ItemTemplate>
+                    <DataTemplate>
+                        <Label
+                            Content="{Binding title}"/>
+                    </DataTemplate>
+                </ComboBox.ItemTemplate>
+            </ComboBox>
+
+            <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"/>
+        </WrapPanel>
+    </Grid>
+</Window>

+ 114 - 0
MainWindow.xaml.cs

@@ -0,0 +1,114 @@
+using System.ComponentModel;
+using System.Text;
+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;
+using wpf_template.Model;
+
+namespace wpf_template
+{
+    /// <summary>
+    /// Interaction logic for MainWindow.xaml
+    /// </summary>
+    /// 
+    public partial class MainWindow : Window, INotifyPropertyChanged
+    {
+        private IEnumerable<Product> _productList;
+        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;
+            }
+        }
+        public List <ProductCategory> CategoryList { get; set; }
+        public List <ProductPrice> ProductPrices { get; set; }
+        public List <ProductCompany> ProductCompanies { get; set; }
+        string selectedCategory = "";
+        string selectedCompany = "";
+        private ProductPrice? selectedPrice = null;
+        private string searchFilter = "";
+        private bool sortAsc = true;
+        public MainWindow()
+        {
+            InitializeComponent();
+            DataContext = this;
+            Globals.dataProvider = new CSVDataProvider(); 
+            ProductList = Globals.dataProvider.GetProducts();
+            ProductPrices = Globals.dataProvider.GetPrices().ToList();
+            CategoryList = Globals.dataProvider.GetCategories().ToList();
+            CategoryList.Insert(0, new ProductCategory { title = "Все категории" });
+            ProductCompanies = Globals.dataProvider.GetCompanies().ToList();
+            ProductCompanies.Insert(0, new ProductCompany { title = "Все компании" });
+        }
+
+        private void ExitButton_Click(object sender, RoutedEventArgs e)
+        {
+            Application.Current.Shutdown();
+        }
+
+        private void CategoryFilterComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            selectedCategory = (CategoryFilterComboBox.SelectedItem as ProductCategory).title;
+            Invalidate();
+        }
+
+        private void PriceFilterComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            selectedPrice = PriceFilterComboBox.SelectedItem as ProductPrice;
+            Invalidate();
+        }
+
+        private void CompanyFilterComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            selectedCompany = (CompanyFilterComboBox.SelectedItem as ProductCompany).title;
+            Invalidate();
+        }
+
+        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();
+        }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+        private void Invalidate()
+        {
+            if (PropertyChanged != null)
+                PropertyChanged(this, new PropertyChangedEventArgs("ProductList"));
+        }
+    }
+
+    class Globals
+    {
+        public static IDataProvider dataProvider;
+    }
+}

+ 243 - 0
Model/PhoneClass.cs

@@ -0,0 +1,243 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Formats.Asn1;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using CsvHelper;
+
+namespace wpf_template.Model
+{
+    public class Product
+    {
+        public string Title { get; set; }
+        public string Company { get; set; }
+        public int Price { get; set; }
+        public string Category { get; set; }
+        public bool Existence {  get; set; }
+        public DateOnly ArrivalDate { get; set; }
+        public double Rating { get; set; }
+        public string Photo { get; set; }
+
+        public string ExistenceString
+        {
+            get {
+                return Existence ? "Да" : "Нет";
+            }
+        }
+    }
+
+    public class ProductCategory
+    {
+        public string title { get; set; }
+    }
+
+    public class ProductPrice
+    {
+        public string title { get; set; }
+        public int priceFrom { get; set; }
+        public int priceTo { get; set; }
+    }
+
+    public class ProductCompany
+    {
+        public string title { get; set; }
+    }
+
+    interface IDataProvider
+    {
+        IEnumerable<Product> GetProducts();
+        IEnumerable<ProductCategory> GetCategories();
+        IEnumerable<ProductPrice> GetPrices();
+        IEnumerable<ProductCompany> GetCompanies();
+    }
+
+    public class LocalDataProvider : IDataProvider
+    {
+        public IEnumerable<Product> GetProducts()
+        {
+            return new Product[]{
+            new Product
+            {
+                Category = "Смартфон",
+                Company = "Apple",
+                Title = "13 Pro Max",
+                Price = 84999
+            },
+            new Product
+            {
+                Category = "Смартфон",
+                Company = "Samsung",
+                Title = "S23",
+                Price = 89999
+            },
+            new Product
+            {
+                Category = "Смартфон",
+                Company = "Huawei",
+                Title = "Nova Y61",
+                Price = 9999
+            },
+            new Product
+            {
+                Category = "Смартфон",
+                Company = "POCO",
+                Title = "C51",
+                Price = 5599
+            },
+            new Product
+            {
+                Category = "Ноутбук",
+                Company = "Xiaomi",
+                Title = "RedmiBook 15",
+                Price = 49999
+            },
+            new Product
+            {
+                Category = "Ноутбук",
+                Company = "Asus",
+                Title = "Vivobook Go 15",
+                Price = 25999
+            },
+            new Product
+            {
+                Category = "Ноутбук",
+                Company = "Lenovo",
+                Title = "IdeaPad 1",
+                Price = 24999
+            },
+            new Product
+            {
+                Category = "Ноутбук",
+                Company = "Asus",
+                Title = "ExpertBook B1502",
+                Price = 32999
+            },
+            new Product
+            {
+                Category = "Смарт-Часы",
+                Company = "Apple",
+                Title = "SE 2023",
+                Price = 30599
+            },
+            new Product
+            {
+                Category = "Смарт-Часы",
+                Company = "Xiaomi",
+                Title = "Smart Band 8",
+                Price = 3999
+            },
+            new Product
+            {
+                Category = "Смарт-Часы",
+                Company = "Huawei",
+                Title = "Watch GT 4",
+                Price = 13999
+            },
+
+            };
+        }
+
+        public IEnumerable<ProductCategory> GetCategories()
+        {
+            return new ProductCategory[]
+            {
+                new ProductCategory {title = "Смартфон"},
+                new ProductCategory {title = "Ноутбук"},
+                new ProductCategory {title = "Смарт-Часы"},
+                new ProductCategory {title = "Монитор"}
+            };
+        }
+
+        public IEnumerable<ProductPrice> GetPrices()
+        {
+            return new ProductPrice[]
+            {
+                new ProductPrice{title="Все цены", priceFrom = 0, priceTo = 999999},
+                new ProductPrice{title="До 10.000", priceFrom = 0, priceTo = 10000},
+                new ProductPrice{title="От 10.000 до 20.000", priceFrom = 10000, priceTo = 20000},
+                new ProductPrice{title="От 20.000 до 50.000", priceFrom = 20000, priceTo = 50000},
+                new ProductPrice{title="Дороже 50.000", priceFrom = 50000, priceTo = 999999 }
+            };
+        }
+        public IEnumerable<ProductCompany> GetCompanies()
+        {
+            return new ProductCompany[]
+            {
+                new ProductCompany{title = "Apple"},
+                new ProductCompany{title = "Xiaomi"},
+                new ProductCompany{title = "Huawei"},
+                new ProductCompany{title = "POCO"},
+                new ProductCompany{title = "Asus"},
+                new ProductCompany{title = "Lenovo"},
+                new ProductCompany{title = "Samsung"},
+                new ProductCompany{title = "Acer"},
+                new ProductCompany{title = "AOC"}
+            };
+        }
+            
+    }
+
+    public class CSVDataProvider : IDataProvider 
+    {
+        private List<Product> productList;
+        public CSVDataProvider()
+        {
+            using (var reader = new StreamReader("./products.csv"))
+            {
+                using (var csv = new CsvReader(
+                    reader,
+                    CultureInfo.InvariantCulture))
+                {
+                    productList = csv.GetRecords<Product>().ToList();
+                }
+            }
+        }
+
+        public IEnumerable<Product> GetProducts() 
+        {
+            return productList;
+        }
+
+        public IEnumerable<ProductCategory> GetCategories()
+        {
+            return new ProductCategory[]
+            {
+                new ProductCategory {title = "Смартфон"},
+                new ProductCategory {title = "Ноутбук"},
+                new ProductCategory {title = "Смарт-Часы"},
+                new ProductCategory {title = "Монитор"}
+            };
+        }
+
+        public IEnumerable<ProductPrice> GetPrices()
+        {
+            return new ProductPrice[]
+            {
+                new ProductPrice{title="Все цены", priceFrom = 0, priceTo = 999999},
+                new ProductPrice{title="До 10.000", priceFrom = 0, priceTo = 10000},
+                new ProductPrice{title="От 10.000 до 20.000", priceFrom = 10000, priceTo = 20000},
+                new ProductPrice{title="От 20.000 до 50.000", priceFrom = 20000, priceTo = 50000},
+                new ProductPrice{title="Дороже 50.000", priceFrom = 50000, priceTo = 999999 }
+            };
+        }
+        public IEnumerable<ProductCompany> GetCompanies()
+        {
+            return new ProductCompany[]
+            {
+                new ProductCompany{title = "Apple"},
+                new ProductCompany{title = "Xiaomi"},
+                new ProductCompany{title = "Huawei"},
+                new ProductCompany{title = "POCO"},
+                new ProductCompany{title = "Asus"},
+                new ProductCompany{title = "Lenovo"},
+                new ProductCompany{title = "Samsung"},
+                new ProductCompany{title = "Acer"},
+                new ProductCompany{title = "AOC"}
+            };
+        }
+    }
+}

BIN
assets/nagievlogo1.jpg


BIN
assets/nagievlogo2.jpg


BIN
bin/Debug/net8.0-windows/CsvHelper.dll


+ 13 - 0
bin/Debug/net8.0-windows/products.csv

@@ -0,0 +1,13 @@
+Title,Company,Price,Category,Existence,ArrivalDate,Rating,Photo
+"Redmi A3","Xiaomi",6999,"Смартфон",True,2023-12-15,3.9,""
+"12","Xiaomi",44999,"Смартфон",True,2024-03-21,4.7,""
+"iPhone 11 Pro","Apple",48999,"Смартфон",False,2023-09-19,4.3,""
+"iPhone SE 2022","Apple",36999,"Смартфон",False,2023-10-25,4.1,""
+"Galaxy S22","Samsung",61299,"Смартфон",True,2024-02-21,4.8,""
+"Redmi Watch 2","Xiaomi",5299,"Смарт-Часы",True,2023-11-09,3.2,""
+"ExpertBook B1","Asus",33999,"Ноутбук",True,2023-01-09,4,""
+"MateBook D 15","Huawei",44999,"Ноутбук",False,2023-08-17,4.4,""
+"Watch SE 2022","Apple",29499,"Смарт-Часы",True,2023-08-29,3.8,""
+"R272ymix","Acer",10999,"Монитор",True,2023-11-11,4.6,""
+"27B3HM","AOC",12999,"Монитор",True,2024-04-05,4.7,""
+"Watch Ultra 49mm","Apple",75999,"Смарт-Часы",False,2023-05-06,4.8,""

+ 41 - 0
bin/Debug/net8.0-windows/wpf_data_csv.deps.json

@@ -0,0 +1,41 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v8.0",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v8.0": {
+      "wpf_data_csv/1.0.0": {
+        "dependencies": {
+          "CsvHelper": "32.0.1"
+        },
+        "runtime": {
+          "wpf_data_csv.dll": {}
+        }
+      },
+      "CsvHelper/32.0.1": {
+        "runtime": {
+          "lib/net8.0/CsvHelper.dll": {
+            "assemblyVersion": "32.0.0.0",
+            "fileVersion": "32.0.1.20"
+          }
+        }
+      }
+    }
+  },
+  "libraries": {
+    "wpf_data_csv/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "CsvHelper/32.0.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-1sPpPUlSGCU2BRZmU+NZ2Le/AO2BBQTRZPZvNmfIgrDiVgLC6oD6b9QDFFf5AHhNsU+cAAbGoAcnnWq5a7VPlw==",
+      "path": "csvhelper/32.0.1",
+      "hashPath": "csvhelper.32.0.1.nupkg.sha512"
+    }
+  }
+}

BIN
bin/Debug/net8.0-windows/wpf_data_csv.dll


BIN
bin/Debug/net8.0-windows/wpf_data_csv.exe


BIN
bin/Debug/net8.0-windows/wpf_data_csv.pdb


+ 18 - 0
bin/Debug/net8.0-windows/wpf_data_csv.runtimeconfig.json

@@ -0,0 +1,18 @@
+{
+  "runtimeOptions": {
+    "tfm": "net8.0",
+    "frameworks": [
+      {
+        "name": "Microsoft.NETCore.App",
+        "version": "8.0.0"
+      },
+      {
+        "name": "Microsoft.WindowsDesktop.App",
+        "version": "8.0.0"
+      }
+    ],
+    "configProperties": {
+      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
+    }
+  }
+}

+ 23 - 0
bin/Debug/net8.0-windows/wpf_filtering.deps.json

@@ -0,0 +1,23 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v8.0",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v8.0": {
+      "wpf_filtering/1.0.0": {
+        "runtime": {
+          "wpf_filtering.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "wpf_filtering/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}

BIN
bin/Debug/net8.0-windows/wpf_filtering.dll


BIN
bin/Debug/net8.0-windows/wpf_filtering.exe


BIN
bin/Debug/net8.0-windows/wpf_filtering.pdb


+ 18 - 0
bin/Debug/net8.0-windows/wpf_filtering.runtimeconfig.json

@@ -0,0 +1,18 @@
+{
+  "runtimeOptions": {
+    "tfm": "net8.0",
+    "frameworks": [
+      {
+        "name": "Microsoft.NETCore.App",
+        "version": "8.0.0"
+      },
+      {
+        "name": "Microsoft.WindowsDesktop.App",
+        "version": "8.0.0"
+      }
+    ],
+    "configProperties": {
+      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
+    }
+  }
+}

+ 41 - 0
bin/Debug/net8.0-windows/wpf_search_sort.deps.json

@@ -0,0 +1,41 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v8.0",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v8.0": {
+      "wpf_search_sort/1.0.0": {
+        "dependencies": {
+          "CsvHelper": "32.0.1"
+        },
+        "runtime": {
+          "wpf_search_sort.dll": {}
+        }
+      },
+      "CsvHelper/32.0.1": {
+        "runtime": {
+          "lib/net8.0/CsvHelper.dll": {
+            "assemblyVersion": "32.0.0.0",
+            "fileVersion": "32.0.1.20"
+          }
+        }
+      }
+    }
+  },
+  "libraries": {
+    "wpf_search_sort/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    },
+    "CsvHelper/32.0.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-1sPpPUlSGCU2BRZmU+NZ2Le/AO2BBQTRZPZvNmfIgrDiVgLC6oD6b9QDFFf5AHhNsU+cAAbGoAcnnWq5a7VPlw==",
+      "path": "csvhelper/32.0.1",
+      "hashPath": "csvhelper.32.0.1.nupkg.sha512"
+    }
+  }
+}

BIN
bin/Debug/net8.0-windows/wpf_search_sort.dll


BIN
bin/Debug/net8.0-windows/wpf_search_sort.exe


BIN
bin/Debug/net8.0-windows/wpf_search_sort.pdb


+ 18 - 0
bin/Debug/net8.0-windows/wpf_search_sort.runtimeconfig.json

@@ -0,0 +1,18 @@
+{
+  "runtimeOptions": {
+    "tfm": "net8.0",
+    "frameworks": [
+      {
+        "name": "Microsoft.NETCore.App",
+        "version": "8.0.0"
+      },
+      {
+        "name": "Microsoft.WindowsDesktop.App",
+        "version": "8.0.0"
+      }
+    ],
+    "configProperties": {
+      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
+    }
+  }
+}

+ 23 - 0
bin/Debug/net8.0-windows/wpf_template.deps.json

@@ -0,0 +1,23 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v8.0",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v8.0": {
+      "wpf_template/1.0.0": {
+        "runtime": {
+          "wpf_template.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "wpf_template/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}

BIN
bin/Debug/net8.0-windows/wpf_template.dll


BIN
bin/Debug/net8.0-windows/wpf_template.exe


BIN
bin/Debug/net8.0-windows/wpf_template.pdb


+ 18 - 0
bin/Debug/net8.0-windows/wpf_template.runtimeconfig.json

@@ -0,0 +1,18 @@
+{
+  "runtimeOptions": {
+    "tfm": "net8.0",
+    "frameworks": [
+      {
+        "name": "Microsoft.NETCore.App",
+        "version": "8.0.0"
+      },
+      {
+        "name": "Microsoft.WindowsDesktop.App",
+        "version": "8.0.0"
+      }
+    ],
+    "configProperties": {
+      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
+    }
+  }
+}

BIN
img/result.png


+ 4 - 0
obj/Debug/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs

@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

+ 71 - 0
obj/Debug/net8.0-windows/App.g.cs

@@ -0,0 +1,71 @@
+#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "354266AB6066EFF5FF97A7B6717697C559AAF41B"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Этот код создан программой.
+//     Исполняемая версия:4.0.30319.42000
+//
+//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+//     повторной генерации кода.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using wpf_template;
+
+
+namespace wpf_template {
+    
+    
+    /// <summary>
+    /// App
+    /// </summary>
+    public partial class App : System.Windows.Application {
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        public void InitializeComponent() {
+            
+            #line 5 "..\..\..\App.xaml"
+            this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
+            
+            #line default
+            #line hidden
+        }
+        
+        /// <summary>
+        /// Application Entry Point.
+        /// </summary>
+        [System.STAThreadAttribute()]
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        public static void Main() {
+            wpf_template.App app = new wpf_template.App();
+            app.InitializeComponent();
+            app.Run();
+        }
+    }
+}
+

+ 71 - 0
obj/Debug/net8.0-windows/App.g.i.cs

@@ -0,0 +1,71 @@
+#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "354266AB6066EFF5FF97A7B6717697C559AAF41B"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Этот код создан программой.
+//     Исполняемая версия:4.0.30319.42000
+//
+//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+//     повторной генерации кода.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using wpf_template;
+
+
+namespace wpf_template {
+    
+    
+    /// <summary>
+    /// App
+    /// </summary>
+    public partial class App : System.Windows.Application {
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        public void InitializeComponent() {
+            
+            #line 5 "..\..\..\App.xaml"
+            this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
+            
+            #line default
+            #line hidden
+        }
+        
+        /// <summary>
+        /// Application Entry Point.
+        /// </summary>
+        [System.STAThreadAttribute()]
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        public static void Main() {
+            wpf_template.App app = new wpf_template.App();
+            app.InitializeComponent();
+            app.Run();
+        }
+    }
+}
+

BIN
obj/Debug/net8.0-windows/MainWindow.baml


+ 180 - 0
obj/Debug/net8.0-windows/MainWindow.g.cs

@@ -0,0 +1,180 @@
+#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0BA3DD8FA7E226326BB56B9DDAF72586CE368EBD"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Этот код создан программой.
+//     Исполняемая версия:4.0.30319.42000
+//
+//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+//     повторной генерации кода.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using wpf_template;
+
+
+namespace wpf_template {
+    
+    
+    /// <summary>
+    /// MainWindow
+    /// </summary>
+    public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+        
+        
+        #line 33 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.Button ExitButton;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 80 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.ComboBox CategoryFilterComboBox;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 98 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.ComboBox PriceFilterComboBox;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 115 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.ComboBox CompanyFilterComboBox;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 135 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.TextBox SearchFilterTextBox;
+        
+        #line default
+        #line hidden
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Uri resourceLocater = new System.Uri("/wpf_data_csv;component/mainwindow.xaml", System.UriKind.Relative);
+            
+            #line 1 "..\..\..\MainWindow.xaml"
+            System.Windows.Application.LoadComponent(this, resourceLocater);
+            
+            #line default
+            #line hidden
+        }
+        
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+            switch (connectionId)
+            {
+            case 1:
+            this.ExitButton = ((System.Windows.Controls.Button)(target));
+            
+            #line 35 "..\..\..\MainWindow.xaml"
+            this.ExitButton.Click += new System.Windows.RoutedEventHandler(this.ExitButton_Click);
+            
+            #line default
+            #line hidden
+            return;
+            case 2:
+            this.CategoryFilterComboBox = ((System.Windows.Controls.ComboBox)(target));
+            
+            #line 81 "..\..\..\MainWindow.xaml"
+            this.CategoryFilterComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.CategoryFilterComboBox_SelectionChanged);
+            
+            #line default
+            #line hidden
+            return;
+            case 3:
+            this.PriceFilterComboBox = ((System.Windows.Controls.ComboBox)(target));
+            
+            #line 99 "..\..\..\MainWindow.xaml"
+            this.PriceFilterComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PriceFilterComboBox_SelectionChanged);
+            
+            #line default
+            #line hidden
+            return;
+            case 4:
+            this.CompanyFilterComboBox = ((System.Windows.Controls.ComboBox)(target));
+            
+            #line 116 "..\..\..\MainWindow.xaml"
+            this.CompanyFilterComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.CompanyFilterComboBox_SelectionChanged);
+            
+            #line default
+            #line hidden
+            return;
+            case 5:
+            this.SearchFilterTextBox = ((System.Windows.Controls.TextBox)(target));
+            
+            #line 136 "..\..\..\MainWindow.xaml"
+            this.SearchFilterTextBox.KeyUp += new System.Windows.Input.KeyEventHandler(this.SearchFilterTextBox_KeyUp);
+            
+            #line default
+            #line hidden
+            return;
+            case 6:
+            
+            #line 146 "..\..\..\MainWindow.xaml"
+            ((System.Windows.Controls.RadioButton)(target)).Checked += new System.Windows.RoutedEventHandler(this.RadioButton_Checked);
+            
+            #line default
+            #line hidden
+            return;
+            case 7:
+            
+            #line 152 "..\..\..\MainWindow.xaml"
+            ((System.Windows.Controls.RadioButton)(target)).Checked += new System.Windows.RoutedEventHandler(this.RadioButton_Checked);
+            
+            #line default
+            #line hidden
+            return;
+            }
+            this._contentLoaded = true;
+        }
+    }
+}
+

+ 180 - 0
obj/Debug/net8.0-windows/MainWindow.g.i.cs

@@ -0,0 +1,180 @@
+#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0BA3DD8FA7E226326BB56B9DDAF72586CE368EBD"
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Этот код создан программой.
+//     Исполняемая версия:4.0.30319.42000
+//
+//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+//     повторной генерации кода.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Controls.Ribbon;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using wpf_template;
+
+
+namespace wpf_template {
+    
+    
+    /// <summary>
+    /// MainWindow
+    /// </summary>
+    public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+        
+        
+        #line 33 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.Button ExitButton;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 80 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.ComboBox CategoryFilterComboBox;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 98 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.ComboBox PriceFilterComboBox;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 115 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.ComboBox CompanyFilterComboBox;
+        
+        #line default
+        #line hidden
+        
+        
+        #line 135 "..\..\..\MainWindow.xaml"
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+        internal System.Windows.Controls.TextBox SearchFilterTextBox;
+        
+        #line default
+        #line hidden
+        
+        private bool _contentLoaded;
+        
+        /// <summary>
+        /// InitializeComponent
+        /// </summary>
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        public void InitializeComponent() {
+            if (_contentLoaded) {
+                return;
+            }
+            _contentLoaded = true;
+            System.Uri resourceLocater = new System.Uri("/wpf_data_csv;component/mainwindow.xaml", System.UriKind.Relative);
+            
+            #line 1 "..\..\..\MainWindow.xaml"
+            System.Windows.Application.LoadComponent(this, resourceLocater);
+            
+            #line default
+            #line hidden
+        }
+        
+        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "8.0.2.0")]
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+            switch (connectionId)
+            {
+            case 1:
+            this.ExitButton = ((System.Windows.Controls.Button)(target));
+            
+            #line 35 "..\..\..\MainWindow.xaml"
+            this.ExitButton.Click += new System.Windows.RoutedEventHandler(this.ExitButton_Click);
+            
+            #line default
+            #line hidden
+            return;
+            case 2:
+            this.CategoryFilterComboBox = ((System.Windows.Controls.ComboBox)(target));
+            
+            #line 81 "..\..\..\MainWindow.xaml"
+            this.CategoryFilterComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.CategoryFilterComboBox_SelectionChanged);
+            
+            #line default
+            #line hidden
+            return;
+            case 3:
+            this.PriceFilterComboBox = ((System.Windows.Controls.ComboBox)(target));
+            
+            #line 99 "..\..\..\MainWindow.xaml"
+            this.PriceFilterComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PriceFilterComboBox_SelectionChanged);
+            
+            #line default
+            #line hidden
+            return;
+            case 4:
+            this.CompanyFilterComboBox = ((System.Windows.Controls.ComboBox)(target));
+            
+            #line 116 "..\..\..\MainWindow.xaml"
+            this.CompanyFilterComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.CompanyFilterComboBox_SelectionChanged);
+            
+            #line default
+            #line hidden
+            return;
+            case 5:
+            this.SearchFilterTextBox = ((System.Windows.Controls.TextBox)(target));
+            
+            #line 136 "..\..\..\MainWindow.xaml"
+            this.SearchFilterTextBox.KeyUp += new System.Windows.Input.KeyEventHandler(this.SearchFilterTextBox_KeyUp);
+            
+            #line default
+            #line hidden
+            return;
+            case 6:
+            
+            #line 146 "..\..\..\MainWindow.xaml"
+            ((System.Windows.Controls.RadioButton)(target)).Checked += new System.Windows.RoutedEventHandler(this.RadioButton_Checked);
+            
+            #line default
+            #line hidden
+            return;
+            case 7:
+            
+            #line 152 "..\..\..\MainWindow.xaml"
+            ((System.Windows.Controls.RadioButton)(target)).Checked += new System.Windows.RoutedEventHandler(this.RadioButton_Checked);
+            
+            #line default
+            #line hidden
+            return;
+            }
+            this._contentLoaded = true;
+        }
+    }
+}
+

BIN
obj/Debug/net8.0-windows/apphost.exe


BIN
obj/Debug/net8.0-windows/ref/wpf_data_csv.dll


BIN
obj/Debug/net8.0-windows/ref/wpf_filtering.dll


BIN
obj/Debug/net8.0-windows/ref/wpf_search_sort.dll


BIN
obj/Debug/net8.0-windows/ref/wpf_template.dll


BIN
obj/Debug/net8.0-windows/refint/wpf_data_csv.dll


BIN
obj/Debug/net8.0-windows/refint/wpf_filtering.dll


BIN
obj/Debug/net8.0-windows/refint/wpf_search_sort.dll


BIN
obj/Debug/net8.0-windows/refint/wpf_template.dll


+ 25 - 0
obj/Debug/net8.0-windows/wpf_csv_data.AssemblyInfo.cs

@@ -0,0 +1,25 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Этот код создан программой.
+//     Исполняемая версия:4.0.30319.42000
+//
+//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+//     повторной генерации кода.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("wpf_csv_data")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyProductAttribute("wpf_csv_data")]
+[assembly: System.Reflection.AssemblyTitleAttribute("wpf_csv_data")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
+[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
+
+// Создано классом WriteCodeFragment MSBuild.
+

+ 1 - 0
obj/Debug/net8.0-windows/wpf_csv_data.AssemblyInfoInputs.cache

@@ -0,0 +1 @@
+f8cee9c33e11297593a45fc6dc074a722c2625c39b85c7a95b56166701e8b89f

+ 13 - 0
obj/Debug/net8.0-windows/wpf_csv_data.GeneratedMSBuildEditorConfig.editorconfig

@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0-windows
+build_property.TargetPlatformMinVersion = 7.0
+build_property.UsingMicrosoftNETSdkWeb = 
+build_property.ProjectTypeGuids = 
+build_property.InvariantGlobalization = 
+build_property.PlatformNeutralAssembly = 
+build_property.EnforceExtendedAnalyzerRules = 
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = wpf_csv_data
+build_property.ProjectDir = C:\Users\User\Desktop\eb\wpf_data_csv\
+build_property.EnableComHosting = 
+build_property.EnableGeneratedComInterfaceComImportInterop = 

+ 6 - 0
obj/Debug/net8.0-windows/wpf_csv_data.GlobalUsings.g.cs

@@ -0,0 +1,6 @@
+// <auto-generated/>
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.Linq;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;

BIN
obj/Debug/net8.0-windows/wpf_csv_data.assets.cache


BIN
obj/Debug/net8.0-windows/wpf_csv_data.csproj.AssemblyReference.cache


+ 20 - 0
obj/Debug/net8.0-windows/wpf_csv_data_MarkupCompile.i.cache

@@ -0,0 +1,20 @@
+wpf_csv_data
+1.0.0.0
+
+winexe
+C#
+.cs
+C:\Users\User\Desktop\eb\wpf_data_csv\obj\Debug\net8.0-windows\
+wpf_csv_data
+none
+false
+TRACE;DEBUG;NET;NET8_0;NETCOREAPP
+C:\Users\User\Desktop\eb\wpf_data_csv\App.xaml
+11407045341
+
+7-953222621
+199-389163700
+MainWindow.xaml;
+
+False
+

+ 25 - 0
obj/Debug/net8.0-windows/wpf_data_csv.AssemblyInfo.cs

@@ -0,0 +1,25 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Этот код создан программой.
+//     Исполняемая версия:4.0.30319.42000
+//
+//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+//     повторной генерации кода.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("wpf_data_csv")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyProductAttribute("wpf_data_csv")]
+[assembly: System.Reflection.AssemblyTitleAttribute("wpf_data_csv")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
+[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
+
+// Создано классом WriteCodeFragment MSBuild.
+

+ 1 - 0
obj/Debug/net8.0-windows/wpf_data_csv.AssemblyInfoInputs.cache

@@ -0,0 +1 @@
+7d70df70ef339ee5c2859e24fc87c7f4fecba7da5d854b8015be2537544edecb

+ 13 - 0
obj/Debug/net8.0-windows/wpf_data_csv.GeneratedMSBuildEditorConfig.editorconfig

@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0-windows
+build_property.TargetPlatformMinVersion = 7.0
+build_property.UsingMicrosoftNETSdkWeb = 
+build_property.ProjectTypeGuids = 
+build_property.InvariantGlobalization = 
+build_property.PlatformNeutralAssembly = 
+build_property.EnforceExtendedAnalyzerRules = 
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = wpf_data_csv
+build_property.ProjectDir = C:\Users\User\Desktop\eb\wpf_data_csv\
+build_property.EnableComHosting = 
+build_property.EnableGeneratedComInterfaceComImportInterop = 

+ 6 - 0
obj/Debug/net8.0-windows/wpf_data_csv.GlobalUsings.g.cs

@@ -0,0 +1,6 @@
+// <auto-generated/>
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.Linq;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;

BIN
obj/Debug/net8.0-windows/wpf_data_csv.assets.cache


BIN
obj/Debug/net8.0-windows/wpf_data_csv.csproj.AssemblyReference.cache


+ 0 - 0
obj/Debug/net8.0-windows/wpf_data_csv.csproj.BuildWithSkipAnalyzers


+ 1 - 0
obj/Debug/net8.0-windows/wpf_data_csv.csproj.CoreCompileInputs.cache

@@ -0,0 +1 @@
+b804a98b022d298f1f96f16ce4789dbf0bd4aee29723f3c01b50509f3c23f7bb

Деякі файли не було показано, через те що забагато файлів було змінено