Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#/WPF:创建“浏览文件”对话框_C#_Wpf_Dialog - Fatal编程技术网

c#/WPF:创建“浏览文件”对话框

c#/WPF:创建“浏览文件”对话框,c#,wpf,dialog,C#,Wpf,Dialog,我是WPF新手,正在尝试使用VC#Express制作我的第一个WPF桌面应用程序 我正在尝试创建三个“打开文件”对话框,其中包含文本字段,如果用户选择文件,这些字段将显示指定的路径。我找到了使对话框在单击按钮时显示的工作代码,但是如何获得要更新/绑定到文件路径的文本字段 类似于HTML中文件输入框的工作方式是理想的 编辑: 好的,我读了我下面的帖子,找到了解决办法 现在,如何将控制台输出重定向到文本字段?如果我理解正确的话 使用FileDialog.FileName将文件复制到完整路径。。并将

我是WPF新手,正在尝试使用VC#Express制作我的第一个WPF桌面应用程序

我正在尝试创建三个“打开文件”对话框,其中包含文本字段,如果用户选择文件,这些字段将显示指定的路径。我找到了使对话框在单击按钮时显示的工作代码,但是如何获得要更新/绑定到文件路径的文本字段

类似于HTML中文件输入框的工作方式是理想的

编辑:

好的,我读了我下面的帖子,找到了解决办法


现在,如何将控制台输出重定向到文本字段?

如果我理解正确的话 使用FileDialog.FileName将文件复制到完整路径。。并将其绑定到文本框。
76mel要回答有关重定向控制台输出的问题,请执行以下操作:

您最好更改代码,以使用希望输出的字符串触发事件。然后在UI中为该事件添加处理程序,并在处理程序中更新文本字段

要声明事件,请在处理类中添加类似以下代码的内容:

public event EventHandler<StringEventArgs> Process_Message;
Process_Message(this, new StringEventArgs(message));
要在UI类中附加消息处理程序,请执行以下操作:

process.Process_Message += Process_Message;
private void Process_Message(object sender, StringEventArgs e)
{
     Action action = () => UpdateStatus(e.Message);
     {
         Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, action);
     }
     else
     {
            action();
     }         
}
要处理事件,请向UI类中添加类似以下代码的内容:

process.Process_Message += Process_Message;
private void Process_Message(object sender, StringEventArgs e)
{
     Action action = () => UpdateStatus(e.Message);
     {
         Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, action);
     }
     else
     {
            action();
     }         
}
您需要执行线程测试,因为无法从其他线程更新UI

然后
UpdateStatus
方法:

private void UpdateStatus(string message)
{
    statusTextBox.Text = message;
}
显然,您需要重命名一些内容以适合您的应用程序


在MSDN中查找事件和
EventArgs

为什么要将控制台输出重定向到文本框?诊断学?日志记录?请在不同的问题中提出不同的问题。:)