powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGridTemplateColumn - ComboBox
2 сообщений из 2, страница 1 из 1
DataGridTemplateColumn - ComboBox
    #39471764
Aleksy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю шаблон состоящий из TextBlock в режиме не редактирования и ComboBox в режиме редактирования. DataGrid привязана к одному источнику, ComboBox привязан к другому источнику данных, с привязкой данных нет проблем, за исключением одного нюанса - в TextBlock (в режиме не редактирования ячейки) удается показывать только ID, а нужно показывать Имя:

Код: 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.
26.
27.
<DataGridTemplateColumn Header="Доктор"  >
      <DataGridTemplateColumn.CellTemplate>
         <DataTemplate>
            <TextBlock  Text="{Binding DoctorId, Converter={local:DoctorNumberConverter}}"/>                     
         </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
      <DataGridTemplateColumn.CellEditingTemplate>
           <DataTemplate>
                 <ComboBox ItemsSource="{Binding DataDoctorsWithDatails, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"
                                                                          SelectedValue="{Binding Path=DoctorId, UpdateSourceTrigger=PropertyChanged}"
                                                                          SelectedValuePath="IdDoctor" 
                                                                          DisplayMemberPath="NameDoctor" 
                                                                          IsEditable="True"  >
                      <ComboBox.ItemTemplate>
                           <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                     <TextBlock  Width="300" Text="{Binding NameDoctor}" />
                                     <TextBlock Width="270" Text="{Binding CommentsDoctor}" />
                                     <TextBlock Width="270" Text="{Binding NameDoctorGroup}"  />
                                     <TextBlock Text="{Binding NameFirm}" Width="600"/>
                                </StackPanel>
                          </DataTemplate>
                      </ComboBox.ItemTemplate>
                  </ComboBox>
               </DataTemplate>
           </DataGridTemplateColumn.CellEditingTemplate>
       </DataGridTemplateColumn>



Собственно я понимаю почему проблема - потому что TextBlock берет данные из источника данных DataGrid, в котором находится только ID, а Имя находится в другой таблице... пришла мысль сделать Конвектор, который по ID находит в базе Имя:
Код: xml
1.
<TextBlock  Text="{Binding DoctorId, Converter={local:DoctorNumberConverter}}"/>



Но сомневаюсь в правильности такого метода - создавать каждый раз специальный класс-конвектор и постоянно искать в базе данных Имя по ID, может быть есть другое решение?

Почему я не использую DataGridComboBoxCloumn - потому что нужно что бы при открытии список состоял из нескольких колонок, кроме того TextBlock можно было бы вообще не использовать и DataGridTemplateColumn.CellTemplate просто опустить - но нужно что бы ячейка могла находится в состоянии "не редактирования".
...
Рейтинг: 0 / 0
DataGridTemplateColumn - ComboBox
    #39471769
Aleksy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть можно как-нибудь получить код Xaml DataGridComboBoxColumn, раздел <DataGridTemplateColumn.CellTemplate> оставить без изменений, а раздел <DataGridTemplateColumn.CellEditingTemplate> подредактировать и настроить на отображение несколько колонок?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGridTemplateColumn - ComboBox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]