Ответ 1
У меня есть это
в Datagrid XAML, поместите атрибут:
IsReadOnly="True"
Я получаю орехи здесь:
ObservableCollection<Employee> list = new ObservableCollection<Employee>();
dgEmployees.ItemsSource = list;
Когда вы отлаживаете переменную списка, она пуста (list.Count = 0), но затем я привязываю ее к DataGrid (WPFToolkit), она показывает мне пустую строку.
В ближайшем окне для dgEmployees.Items отображается:
dgEmployees.Items[0]
{NewItemPlaceholder}
и
dgEmployees.Items[0].GetType()
{Name = "NamedObject" FullName = "MS.Internal.NamedObject"}
[System.RuntimeType]: {Name = "NamedObject" FullName = "MS.Internal.NamedObject"}
Кажется, это происходит после того, как я поместил этот Datagrid в TabControl, но я не уверен, что он имеет к этому какое-то отношение.
Кто-нибудь знает, как удалить эту пустую строку?
У меня есть это
в Datagrid XAML, поместите атрибут:
IsReadOnly="True"
Такая же проблема сохраняется в версии DataGrid в WPF 4.0, и она вызвана добавленной строкой, которая автоматически отображается для ObservableCollection ItemsSource. Установка IsReadOnly как True это слишком радикальное ИМХО.
Я решил это, отключив свойство CanUserAddRows, если вам не нужно это поведение, но вы все еще хотите изменить ячейки:
CanUserAddRows = "False"
CanUserAddRows="False"
и IsReadOnly="True"
комбинация обоих лучше обеспечить любые дополнительные неудобства.