簡體   English   中英

加載帶有數據庫項的列表框(LINQ)(Windows Phone)

[英]Loading a listbox with database items (LINQ) (Windows Phone)

編輯:更新代碼

我在理解如何將數據庫中的數據加載到列表或集合並將其綁定到列表框時遇到了麻煩。

這是在我的ViewModel中。

// List of Album set as the data source for Listbox
private ObservableCollection<Album> _albums;
public ObservableCollection<Album> Albums
{
    get { return _albums; }
    set { _albums = value; NotifyPropertyChanged(); }
}

        private void AddAlbum()
    {
        albumDB.Albums.InsertOnSubmit(new Album
        {
             AlbumName = AlbumName,
             AlbumTimeStamp = DateTime.Now,
             IsPrivate = IsPrivate,
             Password = Password
        });
        SaveChangesToDB();
        LoadAlbums();
    }

    private void LoadAlbums()
    {
        Albums = new ObservableCollection<Album>(albumDB.Albums);

    }

XAML

<ListBox x:Name="AlbumList">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <ListBox ItemsSource="{Binding Albums}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding AlbumName}"></TextBlock>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我認為我不需要發布模型,但是如果可以的話!

您可以像這樣更改您的DataTemplate

<DataTemplate>
    <TextBlock Text="{Binding AlbumName}"></TextBlock>
</DataTemplate>

因為ListBox.ItemTemplate的DataContextAlbum 因此,您應該做的是將AlbumName綁定到您的TextBlock,而不是AlbumModel.AlbumName。

你可以這樣做

<ListBox x:Name="AlbumList" ItemsSource="{Binding Albums}">
<ListBox.ItemTemplate>
    <DataTemplate>
         <TextBlock Text="{Binding AlbumName}"></TextBlock>
    </DataTemplate>
</ListBox.ItemTemplate>

祝一切順利 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM