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