Я пишу приложение C# WPF. Я новичок в этом и попытался загрузить List в DataGrid и не смог. Затем я добавил WinForm в свое WPF-решение с помощью DataGridView. , когда я загрузил список в DataGridView.DataSource У меня не было строки '*' для добавления новой строки, даже если свойство AllowUserToAddRows имеет значение True, я преобразовал List в BindingList и все еще есть новая строка. Я искал везде, но все говорят, что BindingList решил им проблему. Это потому, что его WinForm в приложении WPF? Как это исправить?Невозможно добавить строку в DataGridView с BindingList
ответ
Сфокусируйтесь на использовании WPF, плагин winforms работает, но из-за идиосинкразии процесса это действительно не оптимально.
Вот основной пример, который я создал, который связывается с общим массивом списков. Вы можете использовать ObservableCollection или простой общий список. В WPF в первую очередь определяется внешний вид в xaml, а затем привязывается к данным. ItemsSource
- это стандартный способ получения элементов в отображаемый файл данных.
Window.Resources>
<model:People x:Key="People">
<model:Person First="Joe" Last="Smith" Phone="303-555 5555" />
<model:Person First="Mary" Last="Johnson" Phone="720-555 5555" />
<model:Person First="Frank" Last="Wright" Phone="202-555 5555" />
</model:People>
</Window.Resources>
<DataGrid AutoGenerateColumns="False"
ItemsSource="{StaticResource People}">
<DataGrid.Columns>
<DataGridTextColumn Header="First" Binding="{Binding First}" />
<DataGridTextColumn Header="The Name" Binding="{Binding Last}" />
<DataGridTextColumn Header="Phone Number" Binding="{Binding Phone}"/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<TextBlock Text="{Binding Phone}" />
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
В результате список с шаблоном строк, который открывается на клик:
Теперь, скорее всего, вы не будете использовать статический ресурс, определенный в Xaml связываться с так же, как у меня есть вместо этого один экземпляр класса VM (ViewModel), который реализует INotifyPropertyChanged
и создает Люди.
ВМ можно получить из контекста данных страницы после того, как он, скорее всего, конкретизируется в коде позади таких как
public MyPage()
{
InitializeComponent();
DataContext = new MyPageViewModel(); // Contains logic for the 'People' Property of a list of people.
}
}
Тогда один изменяет связывание в моем примере выше, чтобы связываться с page datacontext , который был проиндексирован со страницы, потому что ничего не было установлено для элемента управления datagrid.
<DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding People}">
Полный пример MVVM см мой блог Xaml: ViewModel Main Page Instantiation and Loading Strategy for Easier Binding
Ok Я установил его, конструктор по умолчанию привязки объекта не была публичной. И по пути я получил его, чтобы связать с WPF DataGrid с ItemsSource (что странно, когда я пробовал его, прежде чем у меня были заголовки столбцов и строки в количестве элементов в списке, но нет данных в строках .. но если он работает, не прикасайтесь к нему :)) Спасибо всем.
- 1. Невозможно редактировать значения в DataGridView (используя BindingList)
- 2. Невозможно отредактировать значения DataGridView, привязанные к BindingList
- 3. C# DataGridView BindingList
- 4. BindingList, DataGridView и SQL-процедуры
- 5. Добавить объект в BindingList в BindingList
- 6. DataGridView не обновляет Enum в BindingList
- 7. Сортируемый BindingList обязан DataGridView с программным родом
- 8. Невозможно выделить строку в DataGridView
- 9. Как добавить строку в datagridview
- 10. Добавить новую строку в datagridview
- 11. Добавить строку в datagridview с DataSource
- 12. Добавить строку после установки DataSource в Datagridview
- 13. DataGridView, BindingList <T>, DataGridViewComboBoxColumn
- 14. Производительность DataGridView в сочетании с источником данных BindingList
- 15. Тип Листинг BindingList из DataGridView Datasource
- 16. DataGridView не обновляется при привязке BindingList изменяется
- 17. BindingList <T> datasource для DataGridView
- 18. C++ добавить новую строку datagridview
- 19. Невозможно связать данные с DataGridView с помощью BindingList в приложении WinForm
- 20. Unbound DataGridView добавить строку с ошибкой флажка
- 21. DataGridView с кнопкой управления - Удалить строку
- 22. DataGridView с Enums только устанавливает значение по умолчанию в BindingList
- 23. Невозможно добавить полосу прокрутки в Datagridview
- 24. Невозможно удалить строки из DataGridView
- 25. Как добавить одну строку в DataGridView?
- 26. Как добавить строку в несвязанный DataGridView?
- 27. Невозможно добавить строки в datagridview Динамически
- 28. Как добавить новую строку в DataGridView программным
- 29. Ошибка попытке добавить строку в DataGridView
- 30. Добавить новую строку внизу datagridview в Winform
Вы проверили свойство readonly в datagridview? –
, пожалуйста, укажите соответствующий код – WiiMaxx
Забудьте winforms. Отправьте соответствующий код и XAML. –