Я работаю с VisualStudio19, C # и WPF.У меня есть метод, чтобы скопировать выбранный Datarow из Таблицы 1 в Таблицу 2 щелчком кнопки, но теперь я хочу скопировать строку, когда я дважды щелкаю по ней.Я буду использовать тот же метод, что и button_click, поэтому мне нужен только Eventhandler, который запускает мой метод при двойном клике
Таблицы:
public MainWindow()
{
InitializeComponent();
//First Table for all values
tableAllVar.Columns.Add("Parameter", typeof(string));
tableAllVar.Columns.Add("Adresse", typeof(string));
tableAllVar.Columns.Add("Groesse", typeof(string));
dgTable1.ItemsSource = tableAllVar.DefaultView;
//second Table for selected values
tableSelectedVar.Columns.Add("Parameter", typeof(string));
tableSelectedVar.Columns.Add("Adresse", typeof(string));
tableSelectedVar.Columns.Add("Groesse", typeof(string));
dgTable2.ItemsSource = tableSelectedVar.DefaultView;
}
Две оставленные таблицы - это таблица, которую я хочускопируйте строку, и право - это целевая строка для строки.
![enter image description here](https://i.stack.imgur.com/xww57.png)
Мой метод копирования выбранного Datarow с помощью кнопки
private void ButtonAddVar_Click(object sender, RoutedEventArgs e)
{
string[] daten = new string[3];
if (dgTable1.SelectedItem != null)
{
DataRowView datarow = (DataRowView)dgTable1.SelectedItem;
daten[0] = (string)datarow.Row.ItemArray[0];
daten[1] = (string)datarow.Row.ItemArray[1];
daten[2] = (string)datarow.Row.ItemArray[2];
bool rowExists = ContainDataRowInDataTable(tableSelectedVar, datarow.Row);
if (rowExists == false)
{
tableSelectedVar.Rows.Add(daten[0], daten[1], daten[2]);
//anzahl++;
}
else
{
MessageBox.Show("Die Variable ist bereits Teil der Variablenüberwachung", null, MessageBoxButton.OK, MessageBoxImage.Error);
}
}
else
MessageBox.Show("Bitte eine Variable aus der linken Liste mit der Maus auswählen",null,MessageBoxButton.OK,MessageBoxImage.Information);
}
И вот как я создаю свою таблицу данных в xaml
<DataGrid Name="dgTable1" HorizontalAlignment="Left" Height="180" Margin="5,30,0,0" VerticalAlignment="Top" Width="150" AutoGenerateColumns="False" FontSize="6" ColumnHeaderHeight="15" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="Parameter" Binding="{Binding Path=Parameter}" Width="auto" />
<DataGridTextColumn Header="Adresse" Binding="{Binding Path=Adresse}" Width="auto"/>
<DataGridTextColumn Header="Größe" Binding="{Binding Path=Größe}" Width="auto"/>
</DataGrid.Columns>
</DataGrid>
Я видел, что в DataGrid есть обработчик событий для Double_Click, но я не знаю, как я могу использовать их для DataTable?Когда я не могу использовать их для Таблицы, как я могу создать новый Eventhandler для этого события?