使用数据绑定监听事件

Listen events on with data binding

我有一个具有以下模板的列表视图:

<ListView.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <Image Width="50"
                    Height="50"
                    Source="{Binding Source}" />
            <ProgressRing Width="50" Height="50" />
        </StackPanel>
    </DataTemplate>
</ListView.ItemTemplate>

此时视图模型是:

public class RowViewModel
{
    private string url;

    public RowViewModel(string url)
    {
        this.url = url;
    }

    public Uri Source
    {
        get
        {
            return new Uri(url, UriKind.Absolute);
        }
    }
}

我想听图像加载开始和结束,以便显示或折叠进度环。 我该怎么做?

谢谢

我认为没有必要将进度环设置为可见 - 它最初可以只是可见。 Image 具有事件 ImageOpened(成功下载时触发​​)和 ImageFailed(出现错误时触发)。

如果你想非常精确地只显示当前正在下载的图片的进度圈,你将不得不在代码中处理下载,而不是依赖于内置的下载和-缓存机制。