Показать пустую строку, когда itemssource равен нулю в сетке данных wpf - PullRequest
0 голосов
/ 01 октября 2018

Я работаю над проектом в wpf с mvvm.Я просто хочу показать строку в таблице данных wpf, чтобы добавить новый элемент, и у меня есть ItemsSource, но это null и canUserAddRows установлено в true.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 октября 2018

Вам нужен какой-то ItemsSource, то есть not null.Просто инициализируйте ваш ObservableCollection<yourType>.

Проще всего сделать это через конструктор вашей ViewModel:

public class ViewModel : INotifyPropertyChanged
{
     public ViewModel()
     {
          _yourCollection = new ObservableCollection<yourType>();
          //Now Items can be added, via code behind, or UI !
     }
}

Подумайте об этом : Вы не можете вызвать .Add() наnull объект (будет выбрасывать NullReferenceException).Так как же самому элементу управления разрешить это через пользовательский интерфейс - в нем нечего хранить значения!

Пример:

ViewModel:

public class ViewModel 
{

     public ObservableCollection<Model> Collection { get; set;}         

     public ViewModel()
     {
          Collection = new ObservableCollection<Model>();
          //Now Items can be added, via code behind, or UI !
     }
}

Модель:

public class Model
{
    public string Text { get; set; }
}

Xaml:

<DataGrid CanUserAddRows="True"
          AutoGenerateColumns="False"
          IsReadOnly="False"
          ItemsSource="{Binding Collection}">
    <DataGrid.Columns>
        <DataGridTextColumn Width="*" 
                            Header="Value" 
                            Binding="{Binding Text}"/>
    </DataGrid.Columns>
</DataGrid>

Результат: enter image description here

...