【问题标题】:WPF ProgressBar for Webservice Call用于 Web 服务调用的 WPF ProgressBar
【发布时间】:2009-05-23 10:20:16
【问题描述】:

是否可以显示一个 ProgressBar 来显示 Web 服务调用的进度? 我正在使用一个 Web 服务,它调用 SQL 数据库并根据需要返回所请求数据的列表。

网络服务代码

    public List<LocationUpdate> GetAllLocationsByUserID(int UserID)
    {
        MainframeConnectionDataContext db = new MainframeConnectionDataContext();
        var validLocations = from query in db.LocationUpdates select query;
        return validLocations.ToList();
    }

客户代码

    void Window1_Loaded(object sender, RoutedEventArgs e)
    {
        dg_sql_data.ItemsSource = CMainFrameConnection.GetAllLocationsByUserID(0);
    }

目前加载数据大约需要 5-10 秒。

有什么想法吗?

【问题讨论】:

    标签: wpf web-services progress-bar


    【解决方案1】:

    这里可能不适合使用进度条,因为您可能无法判断操作完成了多远。显示某种“加载”动画可能更合适。

    例如你可以在这里使用一些示例动画http://www.ajaxload.info/

    编辑:正如 Dreas 指出的那样,设置 IsIndeterminate 是处理此问题的好方法。

    【讨论】:

    • 好主意,朝着正确的方向前进,但我认为如果我异步调用 web 服务应该可以使用进度条。
    • 是的,当然可以在异步调用期间显示进度条并对其进行动画处理,但问题是因为您不知道操作进行了多长时间,所以您无法取得进度准确吧。您可以简单地循环播放进度条动画,使其填满然后清空,然后再次填满以指示“某事”正在发生。
    • 在这种情况下,只需设置 IsIndeterminate="True"
    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    相关资源
    最近更新 更多