我正在尝试使用下面的代码将数据从剪贴板粘贴到WPF Datagrid的底部,但它一直说索引是负数或高于行数。
CanUSerAddRows设置为true
string text = Clipboard.GetText();
string[] line = Regex.Split(text , ",");
foreach (string word in line)
{
int index = DgInvoiceLines.Items.Count;
string prodCode = word ;
DataGridCell ProdCodeCell = GetCell(index, 0);
DataGridCellInfo pcell = new DataGridCellInfo(ProdCodeCell);
string ProdCellContentType = pcell.Column.GetCellContent(pcell.Item).GetType().Name.ToString();
if (ProdCellContentType == "TextBlock") ((TextBlock)cell.Column.GetCellContent(cell.Item)).Text = prodCode;
else if (ProdCellContentType == "TextBox") ((TextBox)cell.Column.GetCellContent(cell.Item)).Text = prodCode;
DataGridCell CommentCodeCell = GetCell(index, 12);
DataGridCellInfo Ccell = new DataGridCellInfo(CommentCodeCell);
string CommentCellContentType = Ccell.Column.GetCellContent(Ccell.Item).GetType().Name.ToString();
if (CommentCellContentType == "TextBlock") ((TextBlock)cell.Column.GetCellContent(cell.Item)).Text = "Ord";
else if (CommentCellContentType == "TextBox") ((TextBox)cell.Column.GetCellContent(cell.Item)).Text = "Ord";
index = index + 1;
}
修改
如果我将索引更改为0,则会抛出空引用异常
非常感谢任何帮助。 感谢
答案 0 :(得分:1)
在我看来,最好的方法是创建额外的数据对象,以添加到您的网格(我假设)绑定到的底层集合中。
如果网格ItemsSource是ObservableCollection<T>
,则新行将自动显示