首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文件传输详细信息连续绑定,直到使用WPF在窗口中传输文件为止。

文件传输详细信息连续绑定,直到使用WPF在窗口中传输文件为止。
EN

Stack Overflow用户
提问于 2017-04-12 08:35:10
回答 3查看 477关注 0票数 2

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

代码语言:javascript
运行
复制
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来绑定窗口中的每一个传输细节的文件。因为我需要显示文件传输的进展。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-12 09:27:31

连续触发WinSCP .NET程序集Session.FileTransferProgress事件。

所以,您需要做的就是更新事件处理程序中的控件。

由于事件是在后台线程上触发的,因此需要使用Invoke。见使用不同的线程更新GUI (WPF)

有关WinForms代码的示例,请参阅WinSCP文章在WinForms ProgressBar上显示FTP/SFTP传输过程。对于WPF,代码将非常相似。

票数 2
EN

Stack Overflow用户

发布于 2017-04-13 04:51:47

我在@Martin Prikryl..Please下面的代码中找到了解决方案

代码语言:javascript
运行
复制
progressBar.Dispatcher.Invoke(() => progressBar.Value = (int)(e.FileProgress * 100), DispatcherPriority.Background);

这是为进度条移动与文件转移进度。我将张贴一旦完成显示进度百分比。

progressBar是wpf中Xaml元素的名称。

票数 2
EN

Stack Overflow用户

发布于 2017-04-13 08:47:24

我已经找到了显示文件传输进度的代码和百分比。请为wpf窗口找到以下Xaml和c#代码。

Xaml用于使用wpf在窗口中显示百分比。

代码语言:javascript
运行
复制
<TextBlock x:Name="percentage" Text=""  Height="27" Width="50" FontSize="20"/>

用于绑定文件传输进度的C#代码(百分比)。

代码语言:javascript
运行
复制
this.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate()
{
   this.percentage.Text = ((e.FileProgress * 100).ToString() + "%");
}));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43364376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档