Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类型';System.Void';不能用作类型参数!发生错误_C#_Winforms_Bindingsource_Data Loss_Generic Type Argument - Fatal编程技术网

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

C# 类型';System.Void';不能用作类型参数!发生错误,c#,winforms,bindingsource,data-loss,generic-type-argument,C#,Winforms,Bindingsource,Data Loss,Generic Type Argument,我在c#winforms上遇到了奇怪的错误。我一步一步地总结这个问题 我有一个模型(公共课) 我有一个winform,其中包含一个datagridtable,它绑定到模型 Winfom.cs已打开 关闭visual studio并重新打开 我得到的错误如下: 在System.RuntimeType。 Throwiftypenervalidgenericargument(RuntimeType类型) SanityCheckGenericArguments(RuntimeType[]genericA

我在c#winforms上遇到了奇怪的错误。我一步一步地总结这个问题

  • 我有一个模型(公共课)
  • 我有一个winform,其中包含一个datagridtable,它绑定到模型
  • Winfom.cs已打开
  • 关闭visual studio并重新打开
  • 我得到的错误如下:
  • 在System.RuntimeType。 Throwiftypenervalidgenericargument(RuntimeType类型) SanityCheckGenericArguments(RuntimeType[]genericArguments,RuntimeType[]GenericParameters) MakeGenericType(类型[]实例化)

    位于System.Windows.Forms.BindingSource。 CreateBindingList(类型) GetListFromType(类型) 重置列表() System.ComponentModel.ISupportInitialize.EndInit()

  • 当我单击错误消息时,它会将下面的winform.designer.cs转发给我
  • (System.ComponentModel.ISupportInitialize)(this.tankModelBindingSource.EndInit()

  • 我在不做任何更改的情况下关闭所有文件并重新打开winform.cs(设计器)

  • 错误消失了

  • 我错过什么了吗?每次我都必须得到这个错误吗?这是不是一个错误

    谢谢

        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;
    
                }
            }
        }
    

    当设计器打开时,代码将运行。您可能已经在设计器代码中更改了某些内容?如果是,您不应该真正触碰机器生成代码,因为它在运行时可能会导致设计器代码的异常行为“这是绑定到模型的”-什么是模型?所发生的事情几乎肯定与您指定为源的任何内容有关……这一部分有点复杂。为了便于理解,请考虑汽车模型,datagrid表显示汽车(名称、颜色、功率等),如果我更改了属性,模型列表也会更新。所以datagrid表只是为了可视化和更改模型参数。@Xazarcengz我强烈怀疑是否有必要向Marc解释模型绑定是如何工作的。我猜他让你把模型的代码和binding@MongZhu,我在问题的顶部添加了VS中的一些代码。另一方面,模型是从属性>数据源绑定的。。。