プログラムでDataGridを作成し、ダブルクリック行イベントを追加する必要があります。これはC#でどのように行われますか?私はこれを見つけました;
myRow.MouseDoubleClick += new RoutedEventHandler(Row_DoubleClick);
DataGrid.ItemsSource
をコレクションにバインドし、手動で行を追加しないため、これは機能しませんが。
XAMLでこれを行うには、リソースセクションの下にDataGridRowのデフォルトスタイルを追加し、イベントセッターを宣言しますを追加します。
<DataGrid>
<DataGrid.Resources>
<Style TargetType="DataGridRow">
<EventSetter Event="MouseDoubleClick" Handler="Row_DoubleClick"/>
</Style>
</DataGrid.Resources>
</DataGrid>
[〜#〜] or [〜#〜]
コードビハインドで実行したい場合。グリッドでx:Name
を設定し、プログラムでスタイルを作成し、スタイルをRowStyleとして設定します。
<DataGrid x:Name="dataGrid"/>
およびコードビハインド:
Style rowStyle = new Style(typeof(DataGridRow));
rowStyle.Setters.Add(new EventSetter(DataGridRow.MouseDoubleClickEvent,
new MouseButtonEventHandler(Row_DoubleClick)));
dataGrid.RowStyle = rowStyle;
[〜#〜] and [〜#〜]
イベントハンドラの例があります。
private void Row_DoubleClick(object sender, MouseButtonEventArgs e)
{
DataGridRow row = sender as DataGridRow;
// Some operations with this row
}