Как привязать к источнику изображения? - PullRequest
0 голосов
/ 22 сентября 2018

Я делаю программное обеспечение для управления библиотекой как личный проект.На главной странице есть рамка, которая переходит к «YourBooks_View».YourBooks_View имеет GridView, который показывает основные вещи.Проблема в том, что все отлично связывается, за исключением обложки книги.

Это база данных SQLite: SQLite database

Это скриншот примера сетки.:

enter image description here

Примечание: местоположение изображения точно существует proof of existence of the image

Это 'YourBooks_View.xaml':

<StackPanel>

    <CommandBar>
        <AppBarButton Icon="Add" 
                      Label="New Book"
                      Click="NewBook_Click"/>

        <AppBarButton Icon="Delete"
                      Label="Remove a Book"
                      Click="DeleteBook_Click"/>
    </CommandBar>

    <GridView ItemsSource="{x:Bind Path=ViewModel.Books, Mode=OneWay}">
        <GridView.ItemTemplate>
            <DataTemplate x:DataType="data:Book">

                <StackPanel>
                    <Image Width="200" Height="200" Source="{x:Bind Path=CoverImageLocation, Mode=OneWay}" />

                    <StackPanel Orientation="Horizontal">
                        <StackPanel>
                            <TextBlock FontSize="16" Text="{x:Bind Path=Title, Mode=OneWay}" />
                            <TextBlock FontSize="10" Text="{x:Bind Path=Author, Mode=OneWay}" />
                        </StackPanel>

                        <TextBlock FontSize="20" Text="{x:Bind Path=Quantity, Mode=OneWay}"
                                   VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
                    </StackPanel>
                </StackPanel>

            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</StackPanel>

Это 'YourBooks_View.xaml.cs':

public sealed partial class YourBooks_View : Page
{
    private BooksViewModel ViewModel { get; set; }

    public YourBooks_View()
    {
        this.InitializeComponent();
        ViewModel = new BooksViewModel();
    }

    private void NewBook_Click(object sender, RoutedEventArgs e)
    {

    }

    private void DeleteBook_Click(object sender, RoutedEventArgs e)
    {

    }
}

И это моя модель (она же BooksViewModel):

public class BooksViewModel
{
    private ObservableCollection<Book> books { get; set; }

    public ObservableCollection<Book> Books
    {
        get { return this.books; }

        set
        {
            this.books = value;
        }
    }


    public BooksViewModel()
    {
        books = DataAccess.GetBooks();
    }
}

DataAccess является статическим классом.Метод GetBooks () считывает базу данных и возвращает наблюдаемую коллекцию типа Book.Это класс Книги:

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public string Publisher { get; set; }
    public string ISBN { get; set; }
    public int Quantity { get; set; }
    public string CoverImageLocation { get; set; }
}

1 Ответ

0 голосов
/ 22 сентября 2018

Кажется, что картинка не показывается из-за песочницы.Я сделал новый пример проекта и вставил местоположение изображения в источник.Это не сработало.

Затем я добавил это изображение в ресурсы, а затем изменил источник на «Активы / (Image name.jpg)», и это сработало.

...