2013-03-19 4 views
1

Можно ли сохранить привязку данных к переменной при создании нового экземпляра этой переменной?Сохранение привязки данных при изменении экземпляра

У меня есть проект, который хранит все пользовательские входы в приложении 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); 

Если какой-либо другой пример кода необходим, пожалуйста спросите

ответ

1

Вы можете проверить привязку данных всех элементов управления на вашем форма. Если текущий источник данных - это ваши старые xml-объекты, удалите привязку данных и добавьте новую привязку данных с теми же параметрами, за исключением того, что она должна использовать ваши новые xml-объекты.

В основном «обновить» все необходимые привязки данных путем удаления текущего и добавления нового.

+0

А так, в основном, вы говорите, что просто вызываете все мои методы привязки данных после того, как я перезагрузил дизайн? (Я полагаю, что мои привязки данных уже удалены при удалении экземпляра) – Sayse

+0

@Sayse Не уверен, что означает «экземпляр», но, как правило, нет, привязки данных не удаляются автоматически. Если с «экземпляром» вы подразумеваете свой источник данных, то нет, ваш экземпляр может быть удален из того места, где вы его храните, но он все еще находится в памяти и ссылается на привязку данных. Вам придется удалить привязки данных вручную. – Maarten

+0

Хорошо, я понимаю, и да, это был тот случай, о котором я говорил. Я попробую ваше предложение в течение следующего часа и приму ваш ответ. Благодаря! – Sayse

Смежные вопросы