2012-05-21 2 views
0

это мой XAMLсвязывания динамического изображения с SQLite в коде

<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 StringFormat и https://stackoverflow.com/questions/3717968/button-image-source-binding-using-string-format-in-wpf, и ответы на них мне нужны, чтобы сделать какой-то конвертер, который преобразует путь изображения в растровый источник .. но, будучи нобом, я действительно не знаю, как сделай это.

ответ

0

Обычно это должна быть только корневая папка приложения.

Если он не работает на вас, я бы предложил использовать инструменты в Visual Studio, чтобы выяснить, что такое строка источника. Перейдите к представлению дизайна XAML и просмотрите свойства вашего управления изображением. Там вы увидите кнопку «...» рядом с исходным свойством, позволяющую выбрать изображение. Когда я это делаю, он дает мне такой путь: */MyProject; component/Images/V__6C41.jpg *

+0

ОК, если я уже получил путь, куда я должен положить путь? в коде или xaml? – imin

+0

@imin Я полагаю, вы тоже можете быть, но в XAML кажется лучшим местом. Используйте ** StringFormat **, чтобы связать правильный путь, например {Binding Path = thumb, StringFormat = images/{0}}, если путь: * images/1.jpg * – McGarnagle

+0

hmmm .. я изменил xaml на < Image Source = "{Binding Path = thumb, StringFormat = WpfTest; component/Images/{0}}" Height = "100" Width = "130" Margin = "5">, но он все еще ничего не отображает .. – imin

Смежные вопросы