如何从C#中以字符串形式访问WPF文本框中的文本?

时间:2018-10-18 09:16:04

标签: c# wpf xaml textbox

我正在构建一个表单,该表单在“浏览...”按钮旁边具有普通形式的文本框。如果浏览了文件,则将其粘贴到文本框中。

我希望能够使用一个单独的函数来读取文件,但是我找不到任何方法来使文本超出函数的范围,而该函数不能在关闭浏览对话框时将其粘贴。

所以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 。怪人。无论如何,谢谢大家。

0 个答案:

没有答案