2017-01-12 10 views
1


少し問題があります。私は、オブジェクトのリストにバインドされているDataGridを持っています。オブジェクトプロパティの1つはアイコン(文字列)です。オブジェクトをDataGridに表示するときは、コンボボックス(アイコンの静的リストを保持すると仮定)があります。私がバインドする方法を知らないことは、アイコンコレクションのアイテムソースです。ここで私はこれまで持っているものです。
XAMLItemsSourceの各アイテムを別の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; 


は、任意のヘルプをお願い申し上げます。ありがとうございました。

+1

あなたはこれが意味するものを明確にすることはできますか? ''オブジェクトのプロパティの1つはIcon(文字列) '" –

+0

です。私はクラスメニューを持っています。そのプロパティの1つはpublic string Icon {get;}です。セット; }。また、DataGridのItemsSourceはMenuオブジェクトのコレクションです。 –

+0

アイコンのリストが静的な場合は、それらを静的リソースに入れてItemsSourceをバインドすることができます。 –

答えて

0

これを機能させる方法は、LoadedイベントをComboBoxに設定し、そこから目的のItemsSourceを設定することでした。

関連する問題