我正在尝试在
以下是我尝试编写的代码,但它引发了异常。异常是无法将类型为 dataset 的 obj 转换为 binding source,在弱委托列表的方法
C#
中向 DaraGridView
插入一行新数据,但是它只有来自 DataBindingSource
的 6 行数据中的 3 行(这是一个包含一个 DataTable
的数据集)。以下是我尝试编写的代码,但它引发了异常。异常是无法将类型为 dataset 的 obj 转换为 binding source,在弱委托列表的方法
public void Invoke(params object[] args)
中。private void cmdNewRow_CustomExecute(object sender,
ExecutionEventArgs<ICommandButtonExecutor> e)
{
Fev018DataSet ds = (Fev018DataSet)(((BindingSource)
FahrzeugBarcodeBindingSource.DataSource).DataSource);
int a = ds.Tables[0].Rows.Count;
ds.Tables[0].NewRow();
customGridViewBarcodes.AddNewRow();
bool locked = false;
try
{
while (!locked)
{
locked = Monitor.TryEnter(this, 100);
if (!locked)
Application.DoEvents(); // do events to prevent
// prevent freezing von Invokes
}
if ((methodInfo == null) || (target == null)) return;
try
{
if (target.IsAlive)
methodInfo.Invoke(target.Target, args);
}
catch (TargetInvocationException ex)
{
// Get the _remoteStackTraceString of the Exception class
FieldInfo remoteStackTraceString = typeof(Exception)
.GetField("_remoteStackTraceString",
BindingFlags.Instance | BindingFlags.NonPublic); // MS.Net
if (remoteStackTraceString == null)
remoteStackTraceString = typeof(Exception)
.GetField("remote_stack_trace",
BindingFlags.Instance | BindingFlags.NonPublic); // Mono
// Set the InnerException._remoteStackTraceString
// to the current InnerException.StackTrace
remoteStackTraceString.SetValue(ex.InnerException,
ex.InnerException.StackTrace + Environment.NewLine);
// Throw the new exception
throw ex.InnerException;
}
catch (Exception)
{
throw;
}
finally
{
if (locked)
Monitor.Exit(this);
}
}
你有任何想法吗?