Wpf DataGrid CanUserAddRows=True

Wpf DataGrid CanUserAddRows=True,wpf,xaml,wpfdatagrid,Wpf,Xaml,Wpfdatagrid,我有一个wpf datagrid,其设置CanUserAddRows设置为true。这将向datagrid添加一个空行,当用户双击该行时,它将清空所有属性并将其添加到集合/项目源(ObservableCollection)。问题是,当空行清零并将其添加到集合中时,我需要添加另一个空行,并在添加前一行并清零后立即准备使用。相反,在我选择新行(selectionchange)之前,新的空行不会显示在datagrid上。希望这是清楚我的要求。有没有办法解决这个问题?任何输入的Thx <Dat

我有一个wpf datagrid,其设置CanUserAddRows设置为true。这将向datagrid添加一个空行,当用户双击该行时,它将清空所有属性并将其添加到集合/项目源(ObservableCollection)。问题是,当空行清零并将其添加到集合中时,我需要添加另一个空行,并在添加前一行并清零后立即准备使用。相反,在我选择新行(selectionchange)之前,新的空行不会显示在datagrid上。希望这是清楚我的要求。有没有办法解决这个问题?任何输入的Thx

  <DataGrid Grid.Row="1" RowHeaderWidth="0" BorderBrush="Black" ItemsSource="{Binding MyCollection, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" SelectedItem="{Binding SelectedRow, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Height="280" Focusable="True" CanUserAddRows="True">

       <DataGridTextColumn Binding="{Binding Weight}" Header="Tare Lbs." Width="70" />
       <DataGridTextColumn Binding="{Binding Bu, UpdateSourceTrigger=PropertyChanged}" Header="Gross Bu." Width="70" />

如果调用DataGrid.committedit(),它将完成添加新行并为您创建新行。我们在DataGrid.CurrentCellChanged()中执行此操作

XAML


在纯XAML中是否有其他方法可以实现这一点?
<DataGrid x:Name="theGrid" ItemsSource="{Binding MyCollection, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" SelectedItem="{Binding SelectedRow, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" CanUserAddRows="True" CurrentCellChanged="theGrid_CurrentCellChanged">
private void theGrid_CurrentCellChanged(object sender, EventArgs e)
{
   DataGrid grid = sender as DataGrid;

   IEditableCollectionView items = (IEditableCollectionView)grid.Items;
   if (items != null && items.IsAddingNew) {
      // Commit the new row as soon as the user starts editing it
      // so we get a new placeholder row right away.
      grid.CommitEdit(DataGridEditingUnit.Row, false);
  }
}