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