0

私のWPFプロジェクトには、画像を表示し、各画像の横にテキストを表示する必要があるリストボックスがあります(例:写真が撮られた日付、場所など)。一般的なリストを作成しようとしましたが、リストボックスに割り当てることができません

何かのようなもの

Bscially 私はこの行で何かを試みています。

public class LoadImages
{
    public static List<ImageLoader> LoadImages()
    {
        List<ImageLoader> img = new List<ImageLoader>();

        Uri uri = new Uri(@"http://somedomain.com/pic.jpg", UriKind.Absolute);
        BitmapImage bi = new BitmapImage(uri);

        img.Add(new ImageLoader("1_1",bi));

        return img;            
    }
}

public class ImageLoader
{
    string mediaid;
    BitmapImage thumbnail;

    public ImageLoader(string mediaid, BitmapImage b)
    {
        this.mediaid = mediaid;
        this.thumbnail = b;
    }
}

そして、私の XAML は次のようになります。

        <ListBox Name="ListBox1" SelectionMode="Extended" ItemsSource="{Binding}"
             Width="300" Height="300" IsSynchronizedWithCurrentItem="True">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Image Source="{Binding thumbnail}"/>
                    <TextBlock Text="{Binding mediaid}"/>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

当分の間、私は Window.DataContext を設定しました

<Window.DataContext>
    <ObjectDataProvider ObjectType="{x:Type local:LoadImages}" MethodName="LoadImages"/>
</Window.DataContext>

しかし、アプリを実行するたびに、リストボックスが空で表示されます。

助言がありますか。

4

3 に答える 3

0

サムネイルとメディア ID は公開されていないため、バインディングは失敗します。

于 2009-03-24T17:56:39.840 に答える
0

多くの読書とグーグルの後、私は答えを見つけました.ImageLoaderクラスでしなければならなかったのは、メディアIDとサムネイルのプロパティを作成することだけで、その後、リストボックスへのバインディングはcharのように機能します. したがって、上記の質問で尋ねられた ImageLoader クラスは次のようになります

public class ImageLoader
{
    string mediaid;
    BitmapImage thumbnail;

    public string MediaId
    {
        get { return mediaid; }
        set { mediaid = value; }
    }

    public BitmapImage Thumbnail
    { 
        get { return thumbnail; } 
        set { thumbnail = value; } 
    }

    public ImageLoader(string mediaid, BitmapImage b)
    {
        this.mediaid = mediaid;
        this.thumbnail = b;
    }
}
于 2009-03-28T08:37:49.137 に答える