Я привязал свой DataGrid
к <ObservableCollection> People
. Он генерирует столбцы, как ожидалось. Моя проблема в том, что я хочу, чтобы пользователь добавил пустые строки. Как я могу это сделать?WPF datagrid не позволяет пользователю добавлять пустые строки
Вот мой полный код:
<Window x:Class="WpfApplication5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<DataGrid AutoGenerateColumns="True"
ItemsSource="{Binding People}"
CanUserAddRows="True"/>
</StackPanel>
</Window>
public class Person
{
public Person(string firstName, string lastName)
{
Firstname = firstName;
Lastname = lastName;
}
public string Firstname { get; set; }
public string Lastname { get; set; }
}
public sealed class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private ObservableCollection<Person> people = new ObservableCollection<Person>
{
new Person("Jack", "Shephard"),
new Person("John", "Locke")
};
public ObservableCollection<Person> People
{
get { return people; }
set
{
people = value;
OnPropertyChanged("People");
}
}
private void OnPropertyChanged(string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var viewModel = new ViewModel();
DataContext = viewModel;
}
}
Если [ 'CanUserAddRows' ] (https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.canuseraddrows (v = vs.110) .aspx) установлено значение true (значение по умолчанию), тогда пользователь должен иметь возможность для добавления новых строк, но для этого нужен конструктор без параметров. Или добавьте пустой 'Person' в' ObservableCollection' – dkozl