Я бы хотел показать всплывающее окно, чтобы помочь пользователям добавить новую строку в datagrid, добавив кнопку в последнюю строку datagrid. Я решил, что должно быть какое-то свойство DataGridTemplateColumn
, которое я должен установить для шаблона newrow/addrow
?Как добавить кнопку в последнюю/новую строку datagrid?
0
A
ответ
1
Что вы можете сделать, это написать стиль для «DataGridRow», как
Thi является рабочим примером
<Style x:Type="DataGridRow">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridRow}">
<Grid Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Column="0" />
<Button Visibility = "{Binding IsLastRow}"/>!--can set converter to convert boolean to visibilty as well.
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Так переплетено свойство в основном проверить логику последней строки. (Я не уверен, что wpf datagrid сам по себе предоставляет какое-то свойство типа «IsLastRow» или нет. Но если не в любое время, вы можете написать свою собственную логику).
В ContentTemplate вы можете определить обработчик или объект команды.
0
Вы можете использовать стиль DataGridRow с триггером данных, который изменяет шаблон последней строки:
<DataGrid x:Name="dgrid">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static CollectionView.NewItemPlaceholder}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridRow}">
<Border x:Name="DGR_Border" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Grid>
<SelectiveScrollingGrid>
<SelectiveScrollingGrid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</SelectiveScrollingGrid.ColumnDefinitions>
<SelectiveScrollingGrid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</SelectiveScrollingGrid.RowDefinitions>
<DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<DataGridDetailsPresenter Grid.Column="1" Grid.Row="1" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Visibility="{TemplateBinding DetailsVisibility}"/>
<DataGridRowHeader Grid.RowSpan="2" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
</SelectiveScrollingGrid>
<Button Content="Add New" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
</DataGrid>
Или - если вы хотите поместить кнопку в определенном столбце - вы можете использовать DataGridTemplateColumn с CellTemplate, который использует аналогичный триггер данных:
Смежные вопросы
- 1. Как добавить строку в DataGrid?
- 2. Как динамически добавить кнопку в SilverLight datagrid
- 3. Как добавить настраиваемую кнопку в GWT dataGrid?
- 4. Как добавить кнопку в компактную структуру DataGrid?
- 5. как добавить строку в DataGrid динамически
- 6. Добавить строку в Dojo datagrid
- 7. Как добавить новую строку в datagrid (набор инструментов WPF) при нажатии на кнопку за пределами datagrid
- 8. Как добавить пустую строку в DataGrid?
- 9. Программно добавить новую строку в WPF DataGrid
- 10. Как добавить строку, нажав кнопку
- 11. Wpf DataGrid Добавить новую строку
- 12. расширить кнопку сворачивания в DataGrid
- 13. Как добавить кнопку в строку QTreeView
- 14. Как добавить кнопку в строку JTable?
- 15. Как программно добавить кнопку в строку UITableView?
- 16. Как добавить кнопку в каждую строку списка?
- 17. Как удалить строку в datagrid?
- 18. Как добавить кнопку динамически в datagrid в wpf?
- 19. Динамически добавить строку в GridView/DataGrid/Repeater?
- 20. C# добавить строку в DataGrid комбобокс
- 21. Добавить пустую строку в dojox/сетки/DataGrid
- 22. C# WPF - добавить общую строку в DataGrid
- 23. DataGrid relocate добавить новую строку в начало
- 24. Как добавить кнопку в правом углу Expander - WPF DataGrid
- 25. Как добавить вручную кнопку на конец DataGrid в чистом XAML?
- 26. Как добавить новую строку в sql из datagrid и обновить строку sql из того же datagrid?
- 27. Добавить строку, нажав на кнопку
- 28. Как добавить новую строку в wpfToolkit: DataGrid (в коде)
- 29. Как добавить идентификатор объекта в строку datagrid в silverlight
- 30. Как добавить значение суммы в строку datagrid в WPF
Я предлагаю разместить эту кнопку где-то рядом с DataGrid, а не внутри нее. Это сделает его намного проще и чище. – icebat