Nav apraksta

Jgrebnev 9681e51994 Обновить 'readme.md' 6 mēneši atpakaļ
WpfApp1 53eabec52c 4comm 6 mēneši atpakaļ
img 53eabec52c 4comm 6 mēneši atpakaļ
.gitignore.txt 62ee81afd3 1st commit 9 mēneši atpakaļ
WpfApp1.sln 53eabec52c 4comm 6 mēneši atpakaļ
readme.md 9681e51994 Обновить 'readme.md' 6 mēneši atpakaļ

readme.md

Классы

namespace WpfApp2.model
{
    public class Spares
    {
        public string name { get; set; }
        public int price { get; set; }
        public string detail { get; set; }
        public string type { get; set; }
        public List<SparesDetail> SparesDetailList { get; set; }
        public List<SparesPrice> SparesPriceList { get; set; }
        public List<SparesType> SparesTypeList { get; set; }

    }
}
namespace WpfApp2.model
{
    class Globals
    {
        public static IDataProvider dataProvider;
    }
}
namespace WpfApp2.model
{
    public class SparesDetail
    {
        public string title { get; set; }
    }
    public class SparesPrice
    {
        public string title { get; set; }
        public int PriceFrom { get; set; }
        public int PriceTo { get; set; }
    }

    public class SparesType
    {
        public string title { get; set; }
    }
}

Mainwindow.xaml(Изменения с прошлой работы)

Добавил пару строчек для отображения информации

<DataGridTextColumn
            Header="Дата завоза"
            Binding="{Binding date,StringFormat='dd.MM.yyyy'}"/>
                <DataGridTextColumn
            Header="Наличие"
            Binding="{Binding available}"/>

Mainwindow.xaml.cs(Изменения с прошлой работы)

прописал csv

 public MainWindow()
        {
            InitializeComponent();
            DataContext = this;
            Globals.dataProvider = new LocalDataProvider();
            SparesList = Globals.dataProvider.getSpares();
            SparesDetailList = Globals.dataProvider.getDetail().ToList();
            SparesDetailList.Insert(0, new SparesDetail { title = "Деталь" });
            SparesPriceList = Globals.dataProvider.getPrice().ToList();
            SparesTypeList = Globals.dataProvider.getType().ToList();
            SparesTypeList.Insert(0, new SparesType { title = "Тип ТС" });
            Globals.dataProvider = new CSVDataProvider();
            SparesList = Globals.dataProvider.getSpares();
        }
        private bool sortAsc = true;

        private void RadioButton_Checked(object sender, RoutedEventArgs e)
        {
            sortAsc = (sender as RadioButton).Tag.ToString() == "1";
            Invalidate();
        }

Добавил новый класс

using System;
using System.Collections.Generic;
using System.Formats.Asn1;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsvHelper;
using WpfApp2;

namespace WpfApp2.model
{
    public class CSVDataProvider : LocalDataProvider, IDataProvider
    {
        private List<Spares> SparesList;

        // конструктор класса
        public CSVDataProvider()
        {
            using (var reader = new StreamReader("./data.csv"))
            {
                using (var csv = new CsvReader(
                    reader,
                    CultureInfo.InvariantCulture))
                {
                    // CsvHelper использует отложенное чтение через 
                    // yeld, поэтому сразу преобразуем в список
                    SparesList = csv.GetRecords<Spares>().ToList();
                }
            }
        }
        public IEnumerable<Spares> getSpares()
        {
            return SparesList;
        }
    }
}

Скрины работы