Тип 'System.Void' нельзя использовать в качестве аргумента типа! Происходит ошибка - PullRequest
2 голосов
/ 10 мая 2019

Я получаю странную ошибку на c # winforms. Я суммирую проблему шаг за шагом.

  1. У меня есть 1 модель (публичный класс)
  2. У меня есть winform, которая включает таблицу данных, и она привязана к модели.
  3. Открыт Winfom.cs.
  4. Закройте визуальную студию и снова откройте.
  5. Я получаю сообщение об ошибке, как показано ниже:

в System.RuntimeType. ThrowIfTypeNeverValidGenericArgument (тип RuntimeType) SanityCheckGenericArguments (RuntimeType [] genericArguments, RuntimeType [] genericParamters) MakeGenericType (Type [] instantiation)

в System.Windows.Forms.BindingSource. CreateBindingList (Тип тип) GetListFromType (Тип тип) ResetList () System.ComponentModel.ISupportInitialize.EndInit ()

  1. Когда я нажимаю на сообщение об ошибке, оно пересылает мне winform.designer.cs ниже

(System.ComponentModel.ISupportInitialize) (this.tankModelBindingSource) .EndInit (); * 1 025 *

  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;

            }
        }
    }
...