WPF DataGridで列選択できるようにする
WPFのDataGridはSelectionUnitプロパティをCellOrRowHeaderにすると行ヘッダのクリックで行選択ができる。一方で列選択は用意されていない。必要になったので自前で再現してみたが、案外面倒くさかったので残しておく。 XAML <DataGrid x:Name="MyGrid" SelectionMode="Extended" SelectionUnit="CellOrRowHeader" CanUserSortColumns="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False"> <DataGrid.ColumnHeaderStyle> <Style TargetType="DataGridColumnHeader"> <EventSetter Event="PreviewMouseDown" Handler="Column_MouseDown" /> <EventSetter Event="PreviewMouseMove" Handler="Column_MouseMove" /> <EventSetter Event="PreviewMouseUp" Handler="Column_MouseUp" /> </Style> </DataGrid.ColumnHeaderStyle> </DataGrid> セルの複数選択が必要なので、SelectionModeをExtended、SelectionUnitをCellまたはCellOrRowHeaderにする。...