Control.DataBindings.Add разрывы с периодом в имени элемента данных - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь добавить к привязке, используя Control.DataBindings.Add ().Проблема, с которой я сталкиваюсь, заключается в том, что в имени элемента данных есть точка и пробел («Foo. Bar»).Когда я пытаюсь добавить привязку, я передаю строку "Foo. Bar" в качестве одного из аргументов и получаю исключение "CAnnot find datamember" Foo. ".

Есть ли синтаксис, который мне нужен дляиспользовать, чтобы передать имя элемента данных, когда в нем есть точка? Я попытался добавить "[]" вокруг имени, но без кубиков.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 02 декабря 2011

После долгих поисков решения этой проблемы я обнаружил, что если вы сделаете свой DataSource коллекцией (даже одного элемента), будет работать имплементация .Net 4.0 ....

ArrayList list = new ArrayList();

list.Add(myDataSource);

Binding binding = new Binding(PropertyName, list, "Dotted.Path.Name");

Control.DataBindings.Add(binding);

Надеюсь, это поможет ....

0 голосов
/ 17 июня 2011

Это должно сработать, так как я делал это с .Net 2.0 годами. Только у меня не было бы пробела после десятичной дроби. Тем не менее, кажется, что .Net 4.0 относится к этому по-разному при некоторых обстоятельствах. Я получаю ту же ошибку аргумента, что и вы, особенно когда связанный элемент управления находится внутри пользовательского элемента управления (но не всегда ...)

Достаточно забавно, когда выполняется тот же код в Net 3.5 (или 2.0), он ведет себя как положено, и я могу просто использовать CheckBox1.DataBindings.Add("Checked",obj,"MainBooking.JoinersAllowed"). Но в Net 4.0 это доставляет мне много горя. Любые решения / предложения приветствуются.

0 голосов
/ 02 марта 2011

это должно сделать это:

Control.DataBindings.Add(new Binding("Text", ds,"Foo. Bar"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...