|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Как можно в GridControl от DevExpress вместо численного значения, которое биндится (некие ID), вывести в ячейку строку из справочника, считая что значения в ячейках - ID записи в справочнике. Сам справочник есть во ViwModel'е. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 18:11 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Qwe.Qwe1, у DEV Express есть форум и саппорт который на 90% русский, если есть языковые сложности, лучше сразу туда идти ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 18:21 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
А для родного грида как подобное сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 22:02 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Qwe.Qwe1А для родного грида как подобное сделать? нормально объясните, что вы хотите, я 4 раза прочитал ваше предложение и еще больше запутался, что куда и от куда. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 22:58 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Нужно вместо ID вывести текст. Вот так я делаю для текстбокса: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
По кнопке "Обзор" пользователь выбирает значение из справочника, выбранное значение в виде ID биндится к модели, а в текстбокс идет текстовое значение по этому ID. Теперь нечто подобное нужно сделать для ячеек грида. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 23:17 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Qwe.Qwe1, как пример можете создать модель строки DataGrid, у которой будет 2 свойства - ID и TextToShow. Создаете коллекцию таких моделей, указываете её в качестве ItemSource для DataGrid, в Binding указываете свойство TextToShow. Когда нужно произвести какие-либо действия со строкой DataGrid, то обращаетесь к свойству ID. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 13:20 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Qwe.Qwe1, ID это уровень модели, на уровне модели представления ID должен быть преобразован в удобочитаемый вид, а на уровне View этот удобочитаемый вид должен быть представлен. Ни каких ID во вью быть не может, если в этом нет прямой необходимости. Объеты модели данных не должны отображаться во View, их нужно обернуть во ViewModel, для этого она и существует, чтоб данные которые невозможно или неудобно представить пользователю преобразовать в то, что пользователь может понять и осмыслить. Если коротко, то должна быть модель подеставления, в которой есть ссылка на справочник и на список элементов, на основе этого вы создаете список элементов в нормальными названиями и отображаете его на экране. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 13:43 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Я так рассуждаю: есть у меня в БД две таблицы: - Данные (ID, DocID, Name, ...) - Справочник "Документы" (ID, Name) Отобразим Данные в гриде. Я могу считать данные одним запросом с Join, тогда названия документов уже будут с текстовыми именами из справочника. Но я считал две таблицы и разнес их по двум спискам/коллекциям на основе классов. Коллекцию с данными (и DocID в виде числа) я прибиндил к гриду. Здесь бы подошел комобобокс в ячейке, где ItemsSource - это справочник, а SelectedValue - DocID (то есть, выходит, вью таки знает об ID!) Но вместо комбобокса нужен текстбокс (ну и кнопка Обзор для выбора). И если через конвертор, как я делал, не правильно делать, то придется как-то (как?) делать через еще один список текстовых значений... Или еще как-то. А если подобных DocID несколько..? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 14:29 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
конечно ViewModel знает об ID, она имеет ссылку на объект из модели данных. Вы либо невнимательно прочитали или неправильно поняли, я говорил о том, что View (представление) не должна вообще ни какая быть забиндена на Id. В данных у вас должно быть 2 списка 1) список это справочник 2) список документов А в модели представления 1, который вы передается в ItemSource, в котором данные будут представлены так, как вам будет удобно их отобразить. Вы же представляете , как данные должны будут выглядеть на экране, можете представить, какими они должны быть, чтоб их было максимально удобно отобразить на экране, без лишних геморов и извращений с учётом всех требований. Формируете список в котором элементы уже будут содержать Id (для последующей идентификации), Название, которые вы разрешите в вашем справочнике и т.д. Поймите одну простую вещь, ViewModel служит для того, чтобы представить сложные данные в простом понятном для пользователя виде. А View это визуальное их представление в виде элементов управления. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 17:13 |
|
wpf devexpress DisplayTemplate и конвертор
|
|||
---|---|---|---|
#18+
Переделал модель: теперь данные из БД считываются и тут же формируется объект класса справочник. Удобно биндить и выбирать значения - оперирую сразу объектами, не надо конверторов. Единственное, если поле не сделать ридонли, то пользователь может фактически поменять значения в справочнике, а хотелось бы так выстроить модель, чтобы справочник был ридонли. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: xml 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 10:05 |
|
|
start [/forum/topic.php?fid=21&fpage=9&tid=1440573]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
16ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 188ms |
0 / 0 |