column Index
を取得し、CommandParameter
で渡したいと思います。context menu
のData grid column header
にあります。右クリックでデータグリッドの列インデックスを取得するには? MVVM WPF
<DataGrid.Resources>
<ContextMenu x:Key="DataGridColumnHeaderContextMenu">
<MenuItem Header="Freez Column"
Command="{Binding DataContext.FreezColumnCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
CommandParameter="{Binding}" />
</ContextMenu>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContextMenu" Value="{StaticResource DataGridColumnHeaderContextMenu}" />
</Style>
</DataGrid.Resources>
IはCommandParameter
にBinding
を渡すことによって、オブジェクト全体を渡すために試みたが、それは唯一のヘッダテキストを通過します。
RelateveSource AncestorType=DataGridColumn
を試してみるとまだ分かりませんでした。
編集:
のDataGridコード:
<DataGrid ItemsSource="{Binding MyList}" HorizontalScrollBarVisibility="Visible" CanUserAddRows="False" AutoGenerateColumns="False">
<DataGrid.Resources>
<ContextMenu x:Key="DataGridColumnHeaderContextMenu">
<MenuItem Header="Freez Column"
Command="{Binding DataContext.FreezColumnCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
CommandParameter="{Binding}" />
</ContextMenu>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContextMenu" Value="{StaticResource DataGridColumnHeaderContextMenu}" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Story" Binding="{Binding Story}" />
<DataGridCheckBoxColumn Header="Design" Binding="{Binding Design}" />
<DataGridTextColumn Header="CadId" Binding="{Binding CadId}" />
</DataGrid.Columns>
</DataGrid>
あなたはあなたのDatagridとカラムにも縛られていますか? – Vijay