0

次のコードを Observable ベースに変更したいと思います。

// 'assets' is a IReadOnly list of StorageFile (approx. 10-20 files)
foreach (var file in assets)
{
    img.Source = new BitmapImage(new Uri(file.Path));

    img.ImageOpened += async (sender, e) =>
    {
        // Do some work (can contain Task-based code)
    };
}

しかし、それを変更しようとすると、いくつかの設計上の問題が発生します。

assets
    .ToObservable()
    .Select(file =>
    {
        img.Source = new BitmapImage(new Uri(file.Path));
        return img.Events().ImageOpened;
    })
    .Switch()
    .Select(event =>
    {
        // Now I'm stuck, I don't have the file...
    })
    .Subscribe(
        _ =>
        {               
        },
        ex => System.Diagnostics.Debug.WriteLine("Error on subscribing to ImageOpened"))
    .DisposeWith(_subscriptions);

私はこれについて間違った方法で進んでいると感じています...

4

1 に答える 1