Objective-c / cocoa предлагает форму привязки, в которой свойства элемента управления (т. Е. Текст в текстовом поле) могут быть связаны со свойством объекта. Я пытаюсь продублировать эту функциональность в C # w / .Net 3.5.
Я создал следующий очень простой класс в файле MyClass.cs:
class MyClass
{
private string myName;
public string MyName
{
get
{
return myName;
}
set
{
myName = value;
}
}
public MyClass()
{
myName = "Allen";
}
}
Я также создал простую форму с 1 текстовым полем и 1 кнопкой. Я инициализировал один экземпляр Myclass внутри кода формы и создал проект. Используя мастер источников данных в Vs2008, я решил создать источник данных на основе объекта и выбрал сборку MyClass. Это создало сущность источника данных. Я изменил привязку данных текстового поля к этому источнику данных; однако ожидаемый результат (что содержимое текстового поля было бы "allen") не был достигнут. Кроме того, помещение текста в текстовое поле не приводит к обновлению свойства имени объекта.
Я знаю, что мне здесь не хватает чего-то фундаментального. В какой-то момент мне нужно было привязать мой экземпляр класса MyClass, который я инициализировал внутри кода формы, к текстовому полю, но этого не произошло. Все, на что я смотрел в Интернете, похоже, затушевывает использование DataBinding с объектом (или я полностью теряю оценку), поэтому любая помощь очень ценится.
Edit:
Используя то, что я узнал из ответов, я посмотрел на код, сгенерированный Visual Studio, в нем было следующее:
this.myClassBindingSource.DataSource = typeof(BindingTest.MyClass);
если я закомментирую это и подставлю:
this.myClassBindingSource.DataSource = new MyClass();
Я получаю ожидаемое поведение. Почему код по умолчанию генерируется VS, как это? Предполагая, что это более правильно, чем метод, который работает, как мне изменить мой код, чтобы он работал в рамках того, что генерирует VS?