Изменение выбора RadioButtons в GroupBox в DataRepeater изменит выбор других RadioButton

У меня есть DataRepeater, в котором есть метка (LabelID) и GroupBox, содержащий RadioButtons. Я привязываю метки к столбцу из DataTable, и я хочу дать пользователю возможность выбрать одну из радиокнопок в каждой ячейке DataRepeater, а затем по мере выполнения я хочу прочитать выбор пользователя для каждой ячейки . Проблема в том, что когда пользователь начинает выбирать переключатели и прокручивает вниз, чтобы выбрать переключатели для других ячеек в DataRepeater, предыдущие выборки меняются или даже те, которые пользователь еще не выбрал, выбираются. Понятия не имею, почему это происходит.

Вот код того, что я сделал:

LabelID.DataBindings.Clear()
LabelID.DataBindings.Add(New Binding("Text", SomeDataTable, "SomeID"))
myDataRepeater.DataSource = SomeDataTable

Я добавил GroupBox, который содержит RadioButtons в среде перетаскивания Visual Studio.

Я попробовал следующую привязку, которая, как я думал, может решить проблему, но этого не произошло.

GroupBoxSelection.DataBindings.Clear()
GroupBoxSelection.DataBindings.Add(New Binding("Tag", SomeDataTable, "SomeID"))

Я знаю, что это как-то связано с прокруткой DataRepeater вверх и вниз. Потому что я увеличил размер DataRepeater, чтобы избавиться от полосы прокрутки, и этого странного поведения больше не будет. Я не могу сохранить DataRepeater такими большими, поэтому я хотел бы найти другое решение.

Любая помощь будет оценена?


person Dogahe    schedule 19.05.2014    source источник


Ответы (1)


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

person jmcilhinney    schedule 19.05.2014
comment
Я попробовал то, что вы предложили, но проблема не устранена. :( - person Dogahe; 20.05.2014