Как я могу обновить ComSBox ItemsSource во время выполнения, когда он размещен в DataGridTemplateColumn? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать форму, которая содержит редактируемую сетку данных, используя IronPython и XAML.

Я извлекаю свои данные из базы данных и добавляю их в список.Затем я устанавливаю этот список в качестве источника элементов для поля со списком.Это работает, и раскрывающийся список со списком заполняется необходимыми параметрами.

Однако, если я теперь переместлю свое поле со списком в DataGridTemplateColumn, он больше не заполняет раскрывающийся список, несмотря на то, что назван так же.

XAML:

<DataGrid AutoGenerateColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" ClipboardCopyMode="IncludeHeader" Height="189" HorizontalAlignment="Left" Margin="6,16,0,0" SelectionUnit="Cell" VerticalAlignment="Top" Width="700" Name="Dtgrd_ELExceptions" CanUserAddRows="True" ItemsSource="{Binding}">
   <DataGrid.Columns>
    <DataGridTextColumn Header="Usertype" Binding="{Binding Usertype}" />
    <DataGridTemplateColumn Header="Header">
     <DataGridTemplateColumn.CellEditingTemplate>
      <DataTemplate>
       <ComboBox ItemsSource="{Binding itemc}" Name="combo" />
      </DataTemplate>
     </DataGridTemplateColumn.CellEditingTemplate>
     <DataGridTemplateColumn.CellTemplate>
      <DataTemplate />
     </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTextColumn Header="Charge Rate" Binding="{Binding Rate}"/>
   </DataGrid.Columns>
  </DataGrid>

IronPython

#Get list of categories

def Categorylist():
 strSql5 = "Select Name from Usr_VarChargeCategories"
 _tikitDbAccess.Open(strSql5)
 if _tikitDbAccess._dr is not None:
  dr = _tikitDbAccess._dr
  if dr.HasRows:
   itemc = list()
   while dr.Read():
    itemc.append(dr.GetString(0))
   combo.ItemsSource = itemc
  dr.Close()
  _tikitDbAccess.Close()

Чего мне не хватает?Немного исследовав, я думаю, что поле со списком в столбце Datagridtemplate не выставляется так же, как когда оно находится вне сетки данных.Но я не могу найти способ ссылаться на него или альтернативный метод.

...