Как сделать математику и объединить данные в сетке данных WPF - PullRequest
0 голосов
/ 11 апреля 2020

Я импортировал данные из Excel в сетку данных в приложении wpf, и я пытаюсь выполнить математическую обработку данных, а также объединить некоторые столбцы. Пожалуйста, посоветуйте, как лучше всего справиться с этим.

Чтобы решить эту проблему, я пытался создать C# класс, но я не знаю, как сопоставить или связать объекты моего класса со столбцом в сетке данных?

  class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string City { get; set; }
        public int Salary { get; set; }
    }

как я могу отобразить или связать мои C# объекты класса в столбце в сетке данных?

это простой способ, или мне нужно поместить все в базу данных SQL и написать запросы, я хорошо разбираюсь в SQL. Любой совет будет высоко оценен. Я пытаюсь понять это по-настоящему долго.

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Вы всегда можете расширить свой класс Person с помощью дополнительных свойств, которые предоставляют геттеру только те комбинации, которые вы хотите ... Что-то вроде ...

class Person
    {
        public int Id { get; set; }
        // added the = ""; just to prevent nulls 
        public string Name { get; set; } = "";
        public string City { get; set; } = "";
        public int Salary { get; set; }
        // Now you can show these columns directly in the grid -- just an example
        public decimal MonthlySalary { get { return Math.Round(Salary / 12.0, 2 ); } }
        public string NameAndCity { get { return Name.Trim() + ",  " + City.Trim(); } }
    }
0 голосов
/ 12 апреля 2020

Я бы начал с изучения некоторых основ, касающихся DataGrid. Эта страница должна быть полезна для того, что вы делаете: https://www.wpf-tutorial.com/datagrid-control/custom-columns/

Вы можете определить любые столбцы, которые вы хотите отобразить в DataGrid между тегами <DataGrid.Columns>. У каждого столбца есть свойство Binding, которое вы используете, чтобы указать, какое свойство вашего класса (Person) связано с этим столбцом посредством обработки данных.

Что касается математики, вы можете создавать свойства только для чтения для Person. Внутри свойств только для чтения вы можете выполнять вычисления на основе других свойств, а затем возвращать результат. Чтобы отобразить результат, вы должны привязать свойство readonly к столбцу в DataGrid. Имейте в виду, что если вы хотите, чтобы данные в вашем классе Person были доступны для редактирования во время выполнения, и у вас было обновление математических результатов, вам нужно будет Person реализовать INotifyPropertyChanged.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...