更新数据源时出错 [英] Error during updating DataSource

查看:89
本文介绍了更新数据源时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我有一个带有dataSource的dataGridView1,它由对象IProcedure(接口)重新定义,它具有2个属性,字符串名称和int loadRatio.我正在尝试使用IProcedures集合中的对象更新dataSource,但是会引发以下错误: ArgumentException:值"Data_Layer.Procedures.Create_Team"的类型不是"Data_Layer.Procedures.Commit_Team",因此不能在此泛型中使用收藏.
参数名称:值
Commit_Team实现IProcedure,Create_Team实现IProcedure.

错误出现在:

Hi,
I have a dataGridView1 with dataSource which is reprezented by object IProcedure (interface), it has 2 properties, String Name and int loadRatio. I am trying to update dataSource with objects from collection IProcedures, but it throws this error: ArgumentException: The value "Data_Layer.Procedures.Create_Team" is not of type "Data_Layer.Procedures.Commit_Team" and cannot be used in this generic collection.
Parameter name: value

Commit_Team implements IProcedure and also Create_Team implements IProcedure.

Error at:

iProcedureBindingSource.DataSource = ProceduresToSelect.Values;


代码:


Code:

public Dictionary<String, IProcedure> Procedures { get; set; }
        public Dictionary<String, IProcedure> ProceduresToSelect { get; set; }

        public Form1()
        {
            InitializeComponent();
            cbProcedure.SelectionChangeCommitted +=new EventHandler(cbProcedure_SelectionChangeCommitted);
            Procedures = new Dictionary<string,IProcedure>();
            Procedures.Add("Commit_Team", (IProcedure)new Commit_Team(50));
            Procedures.Add("Create_Team", (IProcedure)new Create_Team(50));
            Procedures.Add("Create_Tournament", (IProcedure)new Create_Tournament(25));
            Procedures.Add("Decline_Team", (IProcedure)new Decline_Team(50));
            Procedures.Add("Player_Registration", (IProcedure)new Player_Registration(30));
            Procedures.Add("Select_Free_Players", (IProcedure)new Select_Free_Players(70));
            Procedures.Add("Select_New_Tournaments", (IProcedure)new Select_New_Tournaments(50));
            Procedures.Add("Select_Player_Detail", (IProcedure)new Select_Player_Detail(70));
            Procedures.Add("Select_Player_Ranking", (IProcedure)new Select_Player_Ranking(70));
            Procedures.Add("Select_Registrations_to_Tournament", (IProcedure)new Select_Registrations_to_Tournament(50));
            Procedures.Add("Select_Teams", (IProcedure)new Select_Teams(70));
            Procedures.Add("Select_Tournmaments", (IProcedure)new Select_Tournaments(50));
            Procedures.Add("Tournament_Registration", (IProcedure)new Tournament_Registration(50));
            cbProcedure.Items.Clear();
            cbProcedure.Items.AddRange(Procedures.Keys.ToArray<string>());
            ProceduresToSelect = new Dictionary<string, IProcedure>(Procedures);
            iProcedureBindingSource.DataSource = ProceduresToSelect.Values;

        }



谁能解决这个错误?

谢谢!
-Pepin zHané



Could anyone solve this error?

Thanks!
-Pepin z Hané

推荐答案

我已经解决了,很容易打巴掌...

I have solved it, easy like a slap...

iProcedureBindingSource.DataSource = ProceduresToSelect.Values.ToList<IProcedure>();


这篇关于更新数据源时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆