Использование части Date в ViewSource Grouping Description WPF C # - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть ViewSource, основанный на наблюдаемой коллекции набора объектов на основе класса ac #, называемого «Ticket» для DataGrid для проекта WPF в C # .net 4. Проект предназначен для простого приложения службы поддержки.

ViewSource, сгруппированный по свойству Property, вызывает TktDate, и все заявки, введенные в этот день, очевидно, сгруппированы в моей DataGrid

Однако я недавно обновил код, поэтому TktDate теперь не только сохраняет элемент Dateно также и элемент времени, поэтому ясно, что когда я имею в виду только Группировать по дате, я не могу этого сделать из-за элементов времени (я прав?) .. Так что, если это не было ясно, то здесь снимок экрана enter image description here

Существует ли способ группировки по части даты TktDate и игнорирования элемента времени для моего ViewSource или я должен добавить новое свойство в свой класс для сохранения только части даты и группировки поновая собственность?

См. Свойства класса ниже

 public class Ticket : INotifyPropertyChanged
{
    public int userid { get; set; }
    public int deptid { get; set; }
    public int topicid { get; set; }
    public int staffid { get; set; }
    public int priorityid { get; set; }
    public string poster { get; set; }
    public DateTime TktDate { get; set; }
    public string title { get; set; }
    public string bodyopen { get; set; }
    public string bodyclose { get; set; }
    public string timespent { get; set; }
    public string dayoffset { get; set; }
    public string sysdt { get; set; }
    public string Netdt { get; set; }
    public string Teldt { get; set; }
    public string Clidt { get; set; }
    public string status { get; set; }
    private string ticket;

    public string Tket 

В группе ViewSource I на TktDate, которая записывает дату создания заявки.Код группировки приведен ниже, и он работал нормально

CollectionViewSource ticketViewSource = ((CollectionViewSource) (this.FindResource ("ticketViewSource")));

            ticketViewSource.Source = TicketCol;
            ticketDataGrid.DataContext = ticketViewSource;
            //add grouping
            if (ticketViewSource != null)
            {
                ticketViewSource.GroupDescriptions.Clear();
                ticketViewSource.GroupDescriptions.Add(new PropertyGroupDescription("TktDate"));
                ticketViewSource.SortDescriptions.Clear();
                ticketViewSource.SortDescriptions.Add(new SortDescription("TktDate", ListSortDirection.Ascending));
            }

1 Ответ

0 голосов
/ 14 сентября 2018

Есть ли способ Группировать по части даты TktDate и игнорировать элемент времени для моего ViewSource или я должен добавить новое свойство в свой класс для хранения только части даты и группировки по новому свойству?

Вы можете попытаться сгруппировать по вложенному свойству:

ticketViewSource.GroupDescriptions.Add(new PropertyGroupDescription("TktDate.Date"));

Если это не сработает, вам следует добавить новое свойство DateTime только для чтения к вашему Ticket класс, который возвращает TktDate.Date и группировка по этому.

...