更改实例时保留数据绑定

问题描述:

当创建该变量的新实例时,是否可以保留变量的数据绑定?更改实例时保留数据绑定

我所拥有的是将所有用户输入存储在winform应用程序中的设计,因此这些值可以通过xml存储/加载。我发现当我将设计重新加载到我的程序中时,数据绑定会在创建变量的新实例时丢失。我设法通过使用反射来将新的数据值复制到当前的数据绑定实例,但这只能达到一个深度级别。

示例XML文件:

<design> 
    <level1> 
     <myRadioButton>true</myRadioButton>//This value is copied onto the 
             //data bound object 
    </level1> 
<level1> 
    <level2> 
     <myRadioButton>true</myRadioButton>//This value is not as a new instance 
        // of level2 is made removing the data binding instance object 
    </level2> 
<level1> 
</design> 

实例数据绑定:

radioButton.DataBindings.Add("Checked",Instances.Variables.Design.Level1, 
       "myRadioButton", false,DataSourceUpdateMode.OnPropertyChanged); 
radioButton.DataBindings.Add("Checked",Instances.Variables.Design.Level1.Level2, 
       "myRadioButton", false, DataSourceUpdateMode.OnPropertyChanged); 

如果需要任何其他代码示例,那么请让

您可以检查所有控件的数据绑定在你的形成。如果当前数据源是您的旧xml对象,请除去数据绑定,然后添加一个新的数据绑定,其中包含相同的参数,但应使用新的xml对象。

基本上通过删除当前的数据绑定并添加一个新的数据绑定来“刷新”所有必要的数据绑定。

+0

啊,所以基本上你只是说在我重新加载设计之后调用所有的数据绑定方法? (我假设我的数据绑定已被删除,当实例被删除) – Sayse 2013-03-19 08:43:14

+0

@Sayse不知道你的意思是什么'实例',但通常,不,数据绑定不会自动删除。如果'instance'指的是你的数据源,那么不是,你的实例可能会从你存储它的地方删除,但它仍然在内存中,并被数据绑定引用。 您将不得不手动删除数据绑定。 – Maarten 2013-03-19 08:46:13

+0

好吧,我明白了,是的,这是我所指的实例。我会在接下来的一小时内尝试你的建议并接受你的回答。谢谢! – Sayse 2013-03-19 08:47:56