我正在尝试在datagrid的顶部添加一个单个导出按钮。我最大的问题是能够在所有DataGrid的选定项目中添加命令参数。
我已经为ContextMenu做了,但是我需要添加一个按钮进行相同的思考。
这是代码:
<Grid>
<Controls:MetroContentControl>
<Expander Header="HeaderExpa" VerticalAlignment="Top" Grid.Row="1" IsExpanded="True" IsEnabled="True">
<Grid Name="Namegrid">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DataGrid ItemsSource="{Binding ressource}" Name="NameDatagrid">
<DataGrid.Resources>
<Style x:Key="AlignBottomColumnHeader" BasedOn="{StaticResource AzureDataGridColumnHeader}" TargetType="DataGridColumnHeader">
<Setter Property="VerticalContentAlignment" Value="Bottom" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<!--Description-->
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem
Header="HeaderContextMenu"
Command="{ Binding CommandExport }"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}, Path=PlacementTarget.SelectedItems}"
/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
</Grid>
</Expander>
</Controls:MetroContentControl>
</Grid>
如何将此特定的按钮添加到我的datagrid中?我尝试了一些事情,例如添加
<DataTemplate x:Key="HeaderCheckbox">
<Button Command="{x:Static DataGrid.SelectAllCommand}" Focusable="false"
Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}"
Visibility="Visible"
Width="200"/>
</DataTemplate>
在<DataGrid.Resources>
之后,在DataGrid声明之前添加一个按钮,大多数情况下,该按钮确实不会显示。
感谢您的帮助:(
只需在网格面板中添加另一个行定义,然后将按钮添加到该特定行(您的网格上方(,然后使用此操作:
<Grid Name="Namegrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0" CommandParameter="{Binding ElementName=NameDatagrid, Path=SelectedItems}"/>
<DataGrid Grid.Row="1" ItemsSource="{Binding ressource}" Name="NameDatagrid"/>
</Grid>
ps:请在您的datagrid中提供一个名称,并将其用于按钮内的元素名称。按钮应在数据杂志控件本身上方,而不是内部。确保您提到grid.row = datagrid的" 1"。