类型'System.Void'不能用作类型参数!发生错误

时间:2019-05-10 06:58:51

标签: c# winforms bindingsource data-loss generic-type-argument

我在c#winforms上遇到了奇怪的错误。我将逐步总结问题。

  1. 我有1个模型(公开课)
  2. 我有一个包含数据网格表的winform,它已绑定到模型。
  3. Winfom.cs已打开。
  4. 关闭视觉工作室并重新打开。
  5. 我收到如下错误:
  

在System.RuntimeType处。        ThrowIfTypeNeverValidGenericArgument(RuntimeType类型)        SanityCheckGenericArguments(RuntimeType [] genericArguments,RuntimeType [] genericParamters)        MakeGenericType(Type []实例化)

     

,位于System.Windows.Forms.BindingSource。        CreateBindingList(类型类型)        GetListFromType(类型类型)        ResetList()        System.ComponentModel.ISupportInitialize.EndInit()

  1. 当我单击错误消息时,它会将下面的winform.designer.cs转发给我
  

(System.ComponentModel.ISupportInitialize)(this.tankModelBindingSource).EndInit();

  1. 我不做任何更改就关闭了它们并重新打开winform.cs(设计器)

  2. 错误消失了!

我想念什么吗?每次我都要得到这个错误吗?这是一个错误吗?

谢谢。

    public void datagridFixedItemVisualization()
    {
        fixedItemModelBindingSource.DataSource = MainParticularsModel.FixedItemList;
    }

    private void dgTankSet_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {

        // CALCULATING....

        dgTankSet.DataSource = MainParticularsModel.TankList;

        dgTankSet.Refresh();

    }

    private void cmbCatFilter_SelectedIndexChanged(object sender, EventArgs e)
    {
        CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[dgTankSet.DataSource];
        currencyManager1.SuspendBinding();

        TankCategory cmbfiltername = (TankCategory)Enum.Parse(typeof(TankCategory), cmbCatFilter.SelectedItem.ToString());

        switch (cmbfiltername)
        {
            case TankCategory.ALL:
                makeALLrowsVisible();
                currencyManager1.ResumeBinding();
                break;

            case TankCategory.ETC:
                makeALLrowsVisible();
                foreach (DataGridViewRow row in dgTankSet.Rows)
                {
                    if (row.Cells[0].Value.ToString() != "ETC")
                    {
                        row.Visible = false;
                    }
                }
                currencyManager1.ResumeBinding();
                break;

        }

    }


    private void btnAddFixedItem_Click(object sender, EventArgs e)
    {
        using (FixedItemForm frm = new FixedItemForm() {FixedItemInfo=new FixedItemModel() })
        {
            if (frm.ShowDialog() == DialogResult.OK)
            {
                MainParticularsModel.FixedItemList.Add(frm.FixedItemInfo);

                fixedItemModelBindingSource.ResetBindings(false);

                fixedItemModelBindingSource.DataSource = MainParticularsModel.FixedItemList;

                dgFixedItems.Update();

                dgFixedItems.DataSource = fixedItemModelBindingSource;

            }
        }
    }

0 个答案:

没有答案