我试图通过双击该行从数据网格中删除所选行。
private void Row_DoubleClick(object sender, MouseButtonEventArgs e)
{
int selected_index = planeList.SelectedIndex;
string cellValue = GetSelectedCellValue();
MessageBox.Show(selected_index.ToString());
if (m.removePlane(cellValue))
{
// planeList.Items.Clear();
planeList.Items.RemoveAt(selected_index);
planeList.Items.Refresh();
}
XAML:
<DataGrid Name="planeList" AutoGenerateColumns="False" Grid.Row="4" Grid.ColumnSpan="4" ItemsSource="{Binding}" SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="True"
>
<DataGrid.ItemContainerStyle>
<Style TargetType="DataGridRow">
<EventSetter Event="MouseDoubleClick" Handler="Row_DoubleClick"/>
</Style>
</DataGrid.ItemContainerStyle>
</DataGrid>
一切正常,直到removeAt,此时我有一个异常'超出范围',但所选索引等于0或更大。 此外,选择一个项作为空返回。 我真的不知道自己错过了什么 感谢。
编辑:planeList.Items.Clear();是在错误的地方。谢谢!