如何删除 Datagrid 创建的额外行

der*_*eru 2 c# vb.net wpf xaml datagrid

我的 WPF .net 应用程序中有两个 DataGrid。其中一个工作正常,另一个正在创建一行(空),我不知道它添加到哪里。数据网格看起来与我非常相似。

以下是网格的生成方式:

    <DataGrid AutoGenerateColumns="False" 
      Name="grid1">
        <DataGrid.Columns >
            <DataGridTextColumn Binding="{Binding Path=HUHU}" MinWidth="120" Header="HUHU" />
            ... some columns
        </DataGrid.Columns>
    </DataGrid>

    <DataGrid AutoGenerateColumns="False"
      Name="grid2" >
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=HU}" MinWidth="50" Header="HU" />
            ... some columns
        </DataGrid.Columns>
    </DataGrid>
Run Code Online (Sandbox Code Playgroud)

以下是网格的填充方式:

    Dim grid1Source = New List(Of SomeType)

    For Each a As SomeType In MyFunctions.GetAllCalendarItems(CalendarPicker.SelectedDate)
        grid1Source.Add(a)
    Next
    grid1.ItemsSource = gird1Source

    Dim grid2Source = New List(Of SomeOtherType)

    For Each fa As SomeOtherTypeIn MyFunctions.GetsomeCalendarItems(CalendarPicker.SelectedDate)
        grid2Source.Add(fa)
    Next
    grid2.ItemsSource = grid2Source
Run Code Online (Sandbox Code Playgroud)

现在棘手的事情是:它们看起来不同。其中一个包含一个空行。(你可以在下图中看到它)这并不是因为函数返回了坏/空对象(用调试器检查了大约 500 次)。

这就是 DataGrid 的样子

任何想法如何解决这一问题?

Mud*_*uds 6

看起来这个额外的行是 dataGrid 提供的新行。您需要标记CanUserAddRows = False以停止此功能。

这将阻止网格让用户添加新行。

另外,请阅读此内容以获取有关 CanUserAddRows 如何工作的更多信息

CanUserAddRows 如果 DataGrid 不是 ReadOnly 并且 IsEnabled,则为 True,CanUserAddRows 设置为 true 并且 IEditableCollectionView.CanAddNew 为 true