2017-01-24 10 views
0

У меня нормальная ситуация привязки данных, когда мои базовые свойства объекта вопроса привязаны к столбцам в представлении XtraGrid.GridControl. Однако у меня есть одно текстовое свойство, которое принимает форму «{Вопрос | Истина], {Вопрос | Ложь}». Они должны быть сопоставлены с флажками в сетке (потенциально много на каждое свойство). Можно ли использовать привязку данных для привязки этого свойства строки непосредственно к ячейке, обеспечивая редактирование флажка, возможно, используя CheckedComboBox? Я думаю, что мне понадобится промежуточный шаг в процессе привязки для сопоставления исходной строки с флажками, а затем из флажков обратно в строку.привязка от объекта к сетке devexpress

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

+0

DX сетка очень гибкая с точки зрения привязки. Поэтому я уверен, что можно добиться того, чего вы хотите. Но первые PLS предоставляют скриншот эскиза пользовательского интерфейса того, как вы хотите, чтобы эти флажки отображались в строке/ячейке сетки. – andrews

ответ

0

Я в конечном итоге преобразование текста в коллекцию объектов CheckboxQuestionAndAnswer который я затем привязал к сетке, а затем преобразовал их обратно в одну текстовую строку для записи данных назад.

0

Если я понял вас хорошо, я думаю, что вы должны изменить свой объект вопроса , чтобы содержать свойство bool. Свойства Bool привязаны к сетке как флажки, поэтому она будет работать автоматически. Я знаю, что ваше реальное значение этого свойства должно быть строка «{Вопрос | Правда}» так что вы можете установить это свойство таким образом:

private string question; 

private bool questionBool; 
public bool QuestionBool{ 
get{return questionBool;} 
set{ 
if(value) 
    question = "{Question|True}"}; 
else 
    question = "{Question|False}"; 

questionBool = value; 

} 
+0

Спасибо, Paweł, но проблема была в том, что есть несколько флажков, закодированных в одном поле. – majjam