在代码中绑定来自sqlite的动态图像

时间:2012-05-21 03:13:47

标签: wpf sqlite listbox

这是我的xaml

<Window.Resources>
        <DataTemplate x:Key="listBoxTemplate">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding thumb}" Height="100" Width="130" Margin="5"></Image>
                <StackPanel Orientation="Vertical" Width="247">
                    <TextBlock Text="{Binding recipeName}" Height="60" Padding="15" FontSize="16" HorizontalAlignment="Stretch" VerticalAlignment="Center"></TextBlock>
                    <TextBlock Text="{Binding cuisine}" Height="60" Padding="15" FontSize="16" HorizontalAlignment="Stretch" VerticalAlignment="Center"></TextBlock>
                </StackPanel>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>

和我的代码:

conn = new SQLiteConnection(connString);
                cmd = new SQLiteCommand();
                dtSet = new DataSet();

                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "SELECT id,recipeName,cuisine,thumb FROM RECIPES";

 dataAdapter = new SQLiteDataAdapter();
            dataAdapter.SelectCommand = cmd;

            try{
                dataAdapter.Fill(dtSet,"recipes");
                listBox1.DataContext = dtSet;

            }
问题是图像没有出现。让我们说从sqlite返回的拇指是图像文件名1.jpg,2.jpg等等。那么我在哪里放置图像使其出现在程序中?在哪个文件夹?

我遇到了WPF Image Source binding with StringFormathttps://stackoverflow.com/questions/3717968/button-image-source-binding-using-string-format-in-wpf的确切问题,答案是我需要制作某种转换器,将图像路径转换为位图源...但是我是一个菜鸟我真的不知道怎么做。

2 个答案:

答案 0 :(得分:0)

通常它应该只是应用程序的根文件夹。

如果它不适合您,我建议使用Visual Studio中的工具来确定源字符串应该是什么。转到XAML设计视图,然后查看图像控件的属性。在那里你应该看到source属性旁边的“...”按钮,它允许你选择图像。当我这样做时,它给了我这样的路径:* / MyProject; component / Images / V__6C41.jpg *

答案 1 :(得分:0)

似乎我需要添加一个转换器。请参考我的问题(并回答!)the type imageconverter was not found