2

我是这个论坛和编程的新手。我已建议开发者社区澄清我的疑问。我很抱歉,因为我的英语不好,所以我不得不使用谷歌翻译,可能文本不完美,而且我缺乏信息。在发布我的消息之前,我一直在搜索我的问题,但我没有找到任何东西。

我想将图像放在按钮中,到目前为止,我已经设法进行了一个查询,其中我在列表框中显示了要放置按钮的图像。

        var obtenerImagen = (from n in basedeDatos.tablaProductos               
                             select n.imagenProducto);                          

        listBox1.ItemsSource = obtenerImagen;

现在我的想法是将图像放在查询中的按钮上。

        ImageSourceConverter conversor = new ImageSourceConverter();

        image1.Source = (ImageSource)conversor.ConvertFromString(obtenerImagen);  /**/

        image1 = obtenerImagen.FirstOrDefault();  /**/

这给了我以下错误行:(/**/)

  • 参数 1:无法从 'System.Linq.IQueryable' 转换为 'string'
  • 无法将类型“字符串”隐式转换为“System.Windows.Controls.Image”
  • 'System.ComponentModel.TypeConverter.ConvertFromString(string)' 的最佳重载方法匹配有一些无效参数

我究竟做错了什么?

4

3 回答 3

2

您需要为您的列表框定义一个项目模板。我将向您展示一个示例:

<ListBox x:Name="listBox1>
    <ListBox.ItemTemplate>
      <DataTemplate>
        <Image Source="{Binding}" />
      </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

然后您可以使用您的代码设置列表框 ItemsSource:

var obtenerImagen = (from n in basedeDatos.tablaProductos               
                     select n.imagenProducto);                          

listBox1.ItemsSource = obtenerImagen;
于 2013-08-23T07:40:55.027 回答
0

这是基本上使用项目资源中的图像并将其放入按钮的代码。

<Button>
   <Button.Background>
      <ImageBrush ImageSource="/Application;component/Images/Image.png" />
   </Button.Background>
</Button>
于 2013-08-23T07:29:29.393 回答
0

obtenerImagen的对象是 IQueryable 类型的对象。

也许你应该使用:

var obtenerImagen = (from n in basedeDatos.tablaProductos               
                             select n.imagenProducto).ToList(); 

然后你有一个字符串列表。现在您可以通过调用获取第一个元素:

string imageSource = obtenerImagen.FirstOrDefault();
于 2013-08-23T07:29:57.840 回答