【发布时间】:2026-01-09 22:15:02
【问题描述】:
我想从 DataGrid 中获取选定的单元格值。当我单击特定单元格时,单元格值应显示在 MessageBox 中,但在我的情况下无法做到这一点。异常发生在Datagrid.SelectedCells[0];。
System.ArgumentOutOfRangeException: '指定的参数超出 有效值的范围。参数名称:index'
<DataGrid DataGridCell.Selected="DataGrid_GotFocus" SelectionUnit="Cell"
SelectionMode="Single" Name="Datagrid" AutoGenerateColumns="False"
PreviewKeyDown="Datagrid_PreviewKeyDown"
CurrentCellChanged="Datagrid_CurrentCellChanged" SelectionChanged="Datagrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="Code" Width="1*" Binding="{Binding Code}"/>
<DataGridTextColumn Header="Code" Width="1*" Binding="{Binding Name}"/>
</DataGrid.Columns>
</DataGrid>
在选择更改时
private void Datagrid_CurrentCellChanged(object sender, EventArgs e)
{
Datagrid.BeginEdit();
DataGridCellInfo cell = Datagrid.SelectedCells[0];
string value =((TextBlock)cell.Column.GetCellContent(cell.Item)).Text;
MessageBox.Show(value);
}
Datagrid 中的 AddValues:
public FileTab()
{
InitializeComponent();
AddValues();
}
void AddValues()
{
Datagrid.ItemsSource = null;
List<Item> list = new List<Item>();
list.Clear();
for(int i = 0; i<10; i++)
{
string number = i.ToString();
Item item = new Item()
{
Code = number,
Name = "item "+number
};
list.Add(item);
}
Datagrid.ItemsSource = list;
}
【问题讨论】:
-
我已经访问了,但解决方案在我的情况下不起作用