文件传输详细信息连续绑定,直到使用WPF在窗口中传输文件为止 [英] File transfer details binding continuously until file transfered in window using WPF

查看:110
本文介绍了文件传输详细信息连续绑定,直到使用WPF在窗口中传输文件为止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经创建了将文件从客户端传输到服务器的项目.我已经完成了文件传输,并获得了文件传输的详细信息,例如文件名(something.avi)和文件传输的百分比(10%),如下所示,每当传输文件时,我都使用下面的事件处理程序来了解文件转移的详细信息.

I have created project to transferring file from client to server. I have done file transferred and got file transferred details such as file name (something.avi) and percentage (10%) of file transferred like below, Whenever I'm transferring a file, I'm using below event handler for knowing the file transferred details.

private static void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
    // New line for every new file
    if ((_lastFileName != null) && (_lastFileName != e.FileName))
    {
        Console.WriteLine();
    }

    // Print transfer progress
    Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress);

    // Remember a name of the last file reported
    _lastFileName = e.FileName;
}
private static string _lastFileName;

我需要将此转移的详细信息绑定在窗口中.文件传输时我已经完成绑定.但是我需要如何使用WPF绑定窗口中每隔一秒的文件传输细节.因为我需要显示文件传输的进度.

I need to bind this transferred details in window. I have done binding while file transferred. But I need how to bind every second file transferred details in window using WPF. Because I need to show progress of file transferring.

推荐答案

WinSCP .NET程序集 事件被连续触发.

The WinSCP .NET assembly Session.FileTransferProgress event is triggered continuously.

所以您要做的就是在事件处理程序中更新控件.

So all you need to do, is to update your control in the event handler.

由于事件是在后台线程上触发的,因此您需要使用 Invoke .

As the event is triggered on a background thread, you need to use Invoke.

请参见使用其他线程更新GUI(WPF).

这篇关于文件传输详细信息连续绑定,直到使用WPF在窗口中传输文件为止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆