2009-04-16 3 views
1

, 나는 목록 상자 항목으로 표시하는 이미지를 얻을 수 없습니다WPF 목록 상자 이미지 바인딩 질문 (다시)! 이것은 나를 죽이고

WPF :

// listbox called lstWidgets 
<ListBox.ItemTemplate> 
<DataTemplate> 
    <StackPanel> 
     <TextBlock Name="txtTitle" Margin="2,5,5,2" Text="{Binding name}" /> 
     <Image Name="imgDisp" Source="{Binding img}" Width="50" Height="50"/> 
    .....  

C 번호 :

Class widget/props: string name, Image img (get,set)... 
ObservableCollection<cls_Widget> widgets.... 
Image newImage = new Image(); 
newImage.Source = new ImageSourceConverter().ConvertFromString("")as ImageSource; 
cls_Widget wdg = new cls_Widget(); 
wdg.img = newImage 
wdg.name = "My Widget"; 
widgets.Add(wdg);     
lstWidgets.ItemsSource = widgets; 
.... 

여기 내 코드입니다 textblock 텍스트가 표시되지만 이미지가 표시되지 않습니다 (이미지 영역이 비어 있음). 도움이되었습니다. 나는 다른 코드 시나리오에서 표시 할 이미지를 얻었지만이 이미지는 표시하지 않았습니다 ...

미리 감사드립니다.

답변

3

이미지가 아닌 imageSource를 노출해야한다고 생각합니다. 이미 템플릿에 이미지가 있습니다.

Visual Studio에서 디버그 출력을 보면 바인딩에서 실패한 부분이 표시 될 수 있습니다.

+0

아 너희 – jdr120

+0

왜이되지 허용 대답했다 (나에게 바인딩 오류를 보여 주었다) – benPearce

0

이미지 소스를 뒷면 속성에 바인딩하는 경우 뒷면 속성은 이미지가 아닌 이미지 소스 여야합니다.

또는 ContentControl을 사용하여 개체에 이미지를 표시 할 수 있습니다. 보십시오이 :

... 
<TextBlock Name="txtTitle" Margin="2,5,5,2" Text="{Binding name}" /> 
<ContentControl Name="imgDisp" Width="50" Height="50" Padding="0" 
       Content="{Binding img}"/> 
... 
된 출력 창은 .. 나는 이미지 소스 클래스 소품을 변경, 그리고 .. 무초 그라시아