2011-02-14 4 views
1

텍스트 대신 실제 이미지 목록을 표시하기 위해 DataGrid에 콤보 박스가 있어야합니다.Dataagrid의 콤보 박스 열에 이미지 표시

수동으로 콤보 박스를 작성하여이 작업을 수행 할 수 있지만 바인딩을 통해이 작업을 수행 할 수 없습니다 (이는 데이터 그리드를 사용할 수있는 유일한 방법 임).

나는 또한 template column,을 시도했지만 이미지 클래스의 이름을 보여주는 텍스트와 동일한 결과 목록을 얻었습니다. 이것을 보여주는 모든 샘플?

답변

3

ComboBox이 클래스 이름을 표시하는 경우에만 을 설정하여 클래스에 무언가를 할 수 있습니다. 여기에 내가 MyImageListImageSource 객체로 구성되어 있다고 가정 (좀 더 크기 사양을 필요로) :

또는
<DataGridTemplateColumn> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <ComboBox ItemsSource="{Binding MyImageList}"> 
       <ComboBox.ItemTemplate> 
        <DataTemplate> 
         <Image Source="{Binding}"/> 
        </DataTemplate> 
       </ComboBox.ItemTemplate> 
      </ComboBox> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

당신이 porbably 당신의 이미지를 표시 할 수있는 DataTemplate을 설정 CellStyle를 사용뿐만 아니라 DataGridComboBoxColumn을 사용할 수

<DataGridComboBoxColumn ItemsSource="{Binding MyImageList}"> 
    <DataGridComboBoxColumn.CellStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="ItemTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <Image Source="{Binding}"/> 
        </DataTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGridComboBoxColumn.CellStyle> 
</DataGridComboBoxColumn> 
+0

감사합니다. HB. 나는 시간이 없어서 수동 빌드 업을했지만 나중에 시간이 허락 할 때 이것을 내포 할 것이다. –