0

コード ビハインドでを設定せずに、曲List<>をにデータバインドする方法を理解するのに苦労しています。それは機能しますが、リストがライブビュー デザイナーで機能することを本当に望んでいます。ListBoxItemsSource

名前空間 App5
{
    クラス SongsData
    {
        パブリック文字列のタイトル { get; 設定; }
        public string 歌詞 { get; 設定; }
    }
}

そして、私の MainPage.xaml.cs で:

        public MainPage()
        {
            this.InitializeComponent();

            List Songs = new List();
            Songs.Add(new SongsData() { Title = "あなたの歌", Lyrics = "ちょっと面白いね.." });
            Songs.Add(new SongsData() { Title = "Rocket Man", Lyrics = "私は Rocket Maaan.." });

            SongsListBox.ItemsSource = 曲;
        }

XAML には基本的な ListBox があります。

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Title}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

ListBoxVisual Studio のライブビュー デザイナーに曲のタイトルを表示するには、何を変更すればよいか、できればその理由を理解できるように、親切な人に助けてもらえますか?

上記では、プログラムをデバッグして、 の曲のタイトルを確認する必要がありListBoxます。

高度に感謝します。

4

2 に答える 2

3

基本的に、DesignDataビルド時のアクションをデータ ファイルに適用する必要があります。非常に包括的なウォークスルーがmsdnにあります。

于 2013-01-08T19:57:31.210 に答える
1

すばやく簡単な解決策は、をListBox新しいに移動しUserControl、リストの初期化をUserControlコンストラクターに入れてから、のインスタンスをUserControlメインフォームに追加することです。

例:

SongListControl.cs:

namespace App5
{
    public parital class SongListControl : userControl
    {
        this.InitializeComponent();

        List Songs = new List();
        Songs.Add(new SongsData() { Title = "Your Song", Lyrics = "It's a little bit funny.." });
        Songs.Add(new SongsData() { Title = "Rocket Man", Lyrics = "I'm the Rocket Maaaan.." });

        SongsListBox.ItemsSource = Songs;
    }
}

SongListControl.xaml:

<UserControl x:Class="App5.SongListControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <ListBox>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Title}" />
            </DataTemplate>
        </ListBox.ItemTemplate>        
    </ListBox>
</UserControl>

次に、メインウィンドウで:

<Window x:Class="App5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:app="clr-namespace:App5"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <app:SongListControl />
    </Grid>
</Window>

プロジェクトをビルドすると、コンストラクターの初期化がMainWindowプレビューで行われます。

于 2013-01-08T21:12:21.210 に答える