【发布时间】:2019-12-07 17:52:18
【问题描述】:
我有一个 DataGrid,他们的行更新得非常快。每行都有一个右键单击事件,如果单击该事件,则应将此选定行添加到另一个 dataGrid。 问题是当用户选择一行以添加到另一个列表时 由于更新了选定的行,他无法添加,所以用户应该一次又一次地选择该行。 我的代码是这样的
<DataGrid SelectionMode="Single" CanUserAddRows="False"CanUserDeleteRows="False" >
<DataGrid.Columns>
<DataGridTextColumn Header="Data1" Binding="{Binding Path=Data1}"></DataGridTextColumn>
<DataGridTextColumn Header="Data2" Binding="{Binding Path=Data2}"></DataGridTextColumn>
<DataGridTextColumn Header="Data3" Binding="{Binding Path=Data3}"></DataGridTextColumn>
<DataGridTextColumn Header="Data4" Binding="{Binding Path=Data4}"></DataGridTextColumn>
<DataGridTextColumn Header="Data5" Binding="{Binding Path=Data5}"></DataGridTextColumn>
<DataGridTextColumn Header="Data6" Binding="{Binding Path=Data6}"></DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu HorizontalContentAlignment="Right" FlowDirection="RightToLeft">
<MenuItem Name="addToBlackListMnuBtn" Header="Add to Black List" Click="addToBlackListMnuBtn_Click" FontWeight="Black"/>
<MenuItem Name="addtoReportedListMnuBtn" Header="Add to Reported List" Click="addtoReportedListMnuBtn_Click" FontWeight="Black"/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
当我想从 contexMenu 中单击“addtoReportedListMnuBtn”时,我应该尝试几次来执行它的事件。通常在下面的代码中显示消息框
private void addtoReportedListMnuBtn_Click(object sender, RoutedEventArgs e)//add to reported list
{
ObjClass en = (ObjClass)ActiveSignalDataGrid.SelectedItem;
if(en!=null)
{
ReportSignalsListQ.Data = en; // add to queue for adding
}else
{
MessageBox.Show("Please select again");
}
}
【问题讨论】:
-
在你的问题
list because of updating the selected row你的意思是你正在更新另一个数据网格选择? -
不,这个当前列表更新得非常快,当你右键单击特定行并从它的 contextMenu 中选择 addToReportedList 时,它的事件已经显示了消息框