【问题标题】:C# WPF Add a new blank row in the middle of a datatableC# WPF 在数据表中间添加一个新的空白行
【发布时间】:2014-12-04 01:48:58
【问题描述】:

我的数据库中有一个表,指示“集合点”。我有一个 MA 和 Hours 专栏。 MA 的列用于指示是上午还是下午: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

我把它放在一个数据表中:

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

我可以请你帮忙吗?

非常感谢。

亚历克斯

【问题讨论】:

    标签: c# sql wpf datatable


    【解决方案1】:

    查看link

            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;
    
            }
    

    【讨论】:

    • 谢谢,它对我有用,除非我的数据表在下午不包含集合点,我的列表顶部有一个空行。
    • 对不起,我写了一个错误:我的意思是:除非数据表只包含下午的集合点。
    【解决方案2】:

    可能你不想添加一个空行,而只是在列表框中使用分组。 可以看样例here

    如果你想在其他地方使用它,它可能会导致很多其他问题!!!

    【讨论】:

    • 我有一个问题,在我的情况下,这不是一个属性。它是数据库中的一列。 VS显示错误:“MyApp.exe中发生'System.NullReferenceException'类型的未处理异常”。
    • 您是否创建了一个模型类来复制您的数据库,以便您在获得数据时可以转储数据。因此,理想情况下,您应该使用 MVVM 模式,其中您有一个模型类,其所有属性都与您的数据库相似,并且您的 ViewModel 应该有一个模型对象列表。所以你可以用这个填写你的列表,然后将列表框绑定到这个集合。
    • 我真的很喜欢你提供的解决方案,但我完全不知道 MVVM,我无法重写应用程序。可惜了。
    • 哦,您仍然不需要更改整个应用程序。仅适用于这种情况也可以使用!您可以简要了解 MVVM :adityaswami89.wordpress.com/2013/07/07/simple-mvvm-with-wpf 如果您想在没有 MVVM 的情况下使用:您可以使用 :codeproject.com/Tips/784090/… 将数据表转换为列表并将您的列表框绑定到此列表。它会工作! :)
    • 谢谢,我会看这些链接的。
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    相关资源
    最近更新 更多