如何摆脱Datagrid创建的额外行

时间:2015-08-25 12:58:42

标签: c# wpf vb.net xaml datagrid

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

以下是网格的生成方式:

    <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次)。

this is how the DataGrids look like

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

1 个答案:

答案 0 :(得分:3)

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

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

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

  

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