Objective-c/cocoa предлагает форму привязки, где свойства управления (то есть текст в текстовом поле) могут быть привязаны к свойству объекта. Я пытаюсь дублировать эту функцию в С# 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 внутри кода формы и построил проект. Используя мастер DataSource в Vs2008, я выбрал для создания источника данных на основе объекта и выбрал сборку MyClass. Это создало объект источника данных. Я изменил привязку привязки текстового поля к этому источнику данных; однако ожидаемый результат (то, что содержимое текстового поля будет "allen" ) не был достигнут. Кроме того, размещение текста в текстовое поле не обновляет свойство имени объекта.
Я знаю, что мне не хватает чего-то фундаментального здесь. В какой-то момент мне нужно привязать мой экземпляр класса MyClass, который я инициализировал внутри кода формы, в текстовое поле, но этого не произошло. Все, что я просматривал в Интернете, похоже, замалчивается с использованием DataBinding с объектом (или я просто не знаком), поэтому любая помощь очень ценится.
Edit:
Используя то, что я узнал по ответам, я просмотрел код, созданный Visual Studio, он имел следующее:
this.myClassBindingSource.DataSource = typeof(BindingTest.MyClass);
если я прокомментирую это и заменим:
this.myClassBindingSource.DataSource = new MyClass();
Я получаю ожидаемое поведение. Почему код по умолчанию, созданный VS, как он есть? Предполагая, что это более корректно, чем метод, который работает, как мне изменить свой код для работы в рамках того, что VS сгенерировал?