c# - 如何从 C# 访问 WPF 文本框中的文本作为字符串?
问题描述
我正在构建一个表单,它在“浏览...”按钮旁边具有通常形式的文本框。如果浏览了文件,则将其粘贴到文本框中。
我希望能够使用单独的函数来读取文件,但是我找不到任何方法可以在关闭浏览对话框时将文本粘贴到函数范围之外。
所以 XAML 文本是这样的:
<TextBlock Grid.Row="3" Grid.ColumnSpan="3">Source File:</TextBlock>
<TextBox Grid.Row="4" Grid.ColumnSpan="3" Name="FileNameTextBox" Margin="2"></TextBox>
<Button Grid.Column="3" Margin="2" Name="button1" Click="button1_Click" Grid.Row="4">Browse...</Button>
它背后的 C# 代码是这样的:
public void button1_Click(object sender, RoutedEventArgs e)
{
// Create OpenFileDialog
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
// Set filter for file extension and default file extension
dlg.DefaultExt = ".txt";
dlg.Filter = "Text documents (.txt)|*.txt";
// Display OpenFileDialog by calling ShowDialog method
Nullable<bool> result = dlg.ShowDialog();
// Get the selected file name and display in a TextBox
if (result == true)
{
// Open document
string filename = dlg.FileName;
FileNameTextBox.Text = filename;
}
}
我对这一切都很陌生,所以如果可能的话,请以我能理解的方式解释它......但是这样做之后,为什么我不能再次使用“FileNameTextBox.Text”引用另一个函数中的文本?这不存在于 XAML 中,而不存在于 C# 代码中吗?新功能无法“看到”它。
我觉得这在某种程度上是由于在浏览功能中有“(对象发件人......”,但如果不制作“阅读你刚刚浏览的内容”按钮,我看不到再次做同样事情的方法它,这是没有意义的。
将文本框{绑定}到其他代码中会以某种方式解决吗?到目前为止,我还没有找到可以让我充分理解它以完全使用它的描述。
即使这确实有效,我仍然不知道我可以在哪些地方声明一个“DataContext”,因为一半的时间都没有建议。
编辑:所以,我在当天晚些时候又回到了它,通过我只能想象的是添加或删除弯曲括号的经典案例,C# 突然能够检测到我正在输入的对象 FileNameTextBox。怪人。无论如何,谢谢大家。
解决方案
推荐阅读
- django - 选择对问题有共同答案的用户
- actions-on-google - 您的显示名称的发音已被另一个 Action 保留 - 但我在几天前删除了它
- c++ - 如何声明 constexpr c-string 成员?
- sql - Oracle INSERT 语句,以“b”开头的字符串文字
- chef-infra - 如何根据 bash 命令的输出包含厨师食谱?
- authentication - Auth0 调用 API
- c# - 在 ScrollViewer 中缩放 InkCanvas 会剪切画布 - UWP
- compiler-errors - OmniOS 上的 Freetype2 64 位
- python-3.x - 如何解除阻塞已删除命名管道上的线程阻塞?
- typescript - 在 Webpack Visual Studio 2017 .NET Core 2.2 捆绑的 Chrome 中调试 Typescript