2017-01-12 2 views
1


Führen Sie in einem kleinen Problem. Ich habe ein DataGrid, das an eine Liste von Objekten gebunden ist. Eine der Objekteigenschaften ist ein Icon (was eine Zeichenkette ist). Wenn das Objekt im DataGrid angezeigt wird, habe ich eine ComboBox (die eine statische Liste von Icons enthalten soll). Die Sache, die ich nicht binden kann, ist die Itemsource der Ikonensammlung. Hier ist, was ich bisher:
XAMLBinden Sie jedes Element von ItemsSource zu einem anderen ItemsSource

<DataGrid Name="dgMenus" 
       Grid.Column="1" 
       Grid.Row="1" 
       Visibility="Collapsed" 
       CanUserSortColumns="True" 
       Style="{StaticResource DataGrid}"> 
    ... 

    <DataGridTemplateColumn Header="Icon" 
          Width="Auto" 
          IsReadOnly="True"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <ComboBox Name="cbIconSelector" 
            Style="{StaticResource ComboBoxFlatStyle}" 
            SelectionChanged="cbIconSelector_SelectionChanged" 
            ItemsSource="{Binding iconsLibrary}" 
            SelectedIndex="{Binding Icon, Converter={StaticResource FontAwesome_HTML_To_ComboBox_SelectedIndex}}" 
            BorderThickness="0" 
            Width="60" 
            Height="30" 
            VerticalAlignment="Center"> 
          <ComboBox.ItemTemplate> 
           <DataTemplate> 
            <TextBlock Style="{StaticResource FontAwesome}" 
               Text="{Binding XML}" 
               Margin="2"/> 
           </DataTemplate> 
          </ComboBox.ItemTemplate> 
         </ComboBox> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 

    ... 
    </DataGrid> 

C#

dgMenus.ItemsSource = _viewmodel._menusForDisplay; 
iconsLibrary = new FontAwesomeLibrary().icons; 


jede mögliche Hilfe schätzen würde. Vielen Dank.

+1

Können Sie klären, was Sie damit meinen? '" Eine der Objekteigenschaften ist und Symbol (was eine Zeichenkette ist) '" –

+0

Sicher. Ich habe ein Klassenmenü. Eine seiner Eigenschaften ist die öffentliche Zeichenkette Icon {get; einstellen; }. Und die ItemsSource des DataGrid ist eine Sammlung von Menu-Objekten. –

+0

Wenn die Liste der Symbole statisch ist, könnten Sie sie in einer statischen Ressource haben und die ItemsSource an diese binden. –

Antwort

0

Die Art und Weise, wie es funktionierte, bestand darin, ein Loaded-Ereignis auf die ComboBox zu setzen und dort die gewünschte ItemsSource zu setzen.

Verwandte Themen