C # WPF Добавить новую пустую строку в середине таблицы данных

1

У меня есть таблица в моей базе данных, которая указывает на "rendez-vous". У меня есть столбцы MA и Hours. Столбец МА используется для указания, есть ли это утром или днем: 1 или 2, 1 на утро, 2 на второй день. (Я не могу изменить базу данных).

Вот пример результата:

Hours | MA |Name
10:00:00 | 1 | Robert
10:30:00 | 1 | Jane
11:15:00 | 1 | John
14:00:00 | 2 | Stewart
14:15:00 | 2 | Elton

Я помещал его в datatable:

dt = myCon.SelectDataTable(query);

Затем я привязал его к списку:

lstGCCCandidatCreneau.ItemsSource = dt.DefaultView;

Но прежде чем сделать это, я хотел бы вставить пустую строку между утром и днем. Я бы хотел, чтобы в списке появилось что-то вроде этого:

Hours | MA |Name
10:00:00 | 1 | Robert
10:30:00 | 1 | Jane
11:15:00 | 1 | John

14:00:00 | 2 | Stewart
14:15:00 | 2 | Elton

Могу я вам помочь?

Большое спасибо.

Alex

Теги:
wpf
datatable

2 ответа

0
Лучший ответ

Проверить эту ссылку

        DataTable dt = SampleData();
        int i = dt.Rows.Cast<DataRow>().TakeWhile(dr => dr != null && dr[1].ToString() != "2").Count();
        DataRow toInsert = dt.NewRow();
        dt.Rows.InsertAt(toInsert, i);

        public DataTable SampleData()
        {
            DataTable dt=new DataTable();
            dt.Columns.Add("Hours",typeof(string));
            dt.Columns.Add("MA",typeof(string));
            dt.Columns.Add("Name",typeof(string));
            dt.Rows.Add(new object[] {@"10:00:00", 1, "Robert"});
            dt.Rows.Add(new object[] {@"10:30:00", 1, "Jane"});
            dt.Rows.Add(new object[] {@"11:15:00", 1, "John"});
            dt.Rows.Add(new object[] {@"14:00:00", 2, "Stewart"});
            dt.Rows.Add(new object[] {@"14:15:00", 2, "Elton"});
            return dt;

        }
  • 0
    Спасибо, это работает для меня, за исключением случаев, когда мой DataTable не содержит рандеву днем, у меня есть пустая строка вверху списка.
  • 0
    извините, я написал ошибку: я имею в виду: за исключением случаев, когда данные могут содержать только рандеву днем.
3

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

Это может вызвать множество других проблем, если вы хотите использовать это в другом месте!

  • 0
    У меня есть проблема, в моем случае это не собственность. Это столбец из базы данных. VS отображает ошибку: «Произошло необработанное исключение типа« System.NullReferenceException »в MyApp.exe».
  • 0
    Не создавайте класс Model, который реплицирует вашу базу данных, чтобы вы могли получить данные, когда вы их получите. Поэтому в идеале вы должны использовать шаблон MVVM, где у вас есть класс Model со всеми свойствами, похожими на вашу БД, а у вашей ViewModel должен быть список объектов Model. Таким образом, вы можете заполнить свой список этим, а затем привязать список к этой коллекции.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню