2009-04-16 78 views
1

这是我的命,我不能让显示为一个列表框项目的图像:这是我的代码:WPF Listbox图像绑定问题(再次)!

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

啊咋老输出窗口(向我展示了绑定错误)。我改变了类道具的图像源,和它的工作.. MUCHO格拉西亚斯 – jdr120 2009-04-16 18:20:59

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}"/> 
...