我的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次)。
任何想法如何解决这个问题?
答案 0 :(得分:3)
看起来这个额外的行是dataGrid提供的新行。您需要标记CanUserAddRows = False
才能停止此功能。
这将阻止网格让用户添加新行。
另外,请阅读this以获取有关CanUserAddRows如何工作的更多信息
如果DataGrid不是ReadOnly和IsEnabled,则CanUserAddRows为True, CanUserAddRows设置为true,IEditableCollectionView.CanAddNew设置为 真