我的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>


这是填充网格的方式:

    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


现在棘手的事情是:它们看起来不一样。其中之一包含一个空行。 (您可以在下面的图片中看到它)并不是因为该函数返回了错误/空的对象(已通过调试器检查了500次)。

c# - 我如何摆脱Datagrid创建的额外行-LMLPHP

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

最佳答案

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

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

另外,请阅读this以获得有关CanUserAddRows如何工作的更多信息。


  CanUserAddRows如果DataGrid不是ReadOnly和IsEnabled,则为True,
  CanUserAddRows设置为true,IEditableCollectionView.CanAddNew为
  真正

10-08 19:09