Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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 - Fatal编程技术网

C#WPF-如何从用户控件获取文本框

C#WPF-如何从用户控件获取文本框,c#,wpf,C#,Wpf,我有一个用户控件和一个自定义控件的viewmodel,它们与mainwindow XAML和mainwindow viewmodel分开。在用户控件XAML文件中,我有一个文本框,如何获取它的属性并在viewmodel中的代码中对其进行基本操作 我试着这样访问文本框的名称: EditorBox.Text = "Test text"; 但是它没有意识到这一点。这是保持事物彼此分离的模式的基本部分 要实现您想要的功能,您必须在视图模型中创建一个属性,并在视图中绑定该属性 那样 class View

我有一个用户控件和一个自定义控件的viewmodel,它们与mainwindow XAML和mainwindow viewmodel分开。在用户控件XAML文件中,我有一个文本框,如何获取它的属性并在viewmodel中的代码中对其进行基本操作

我试着这样访问文本框的名称:

EditorBox.Text = "Test text";

但是它没有意识到这一点。

这是保持事物彼此分离的模式的基本部分

要实现您想要的功能,您必须在
视图模型中创建一个属性,并在
视图中绑定该属性

那样

class ViewModel : INotifyPropertyChanged
{
    ...
    private string _text;
    public string Text
        {
            get => _text;
            set
            {
                _text = value;
                OnPropertyChanged();
            }
        }
    ...
}



但如何通过名称访问文本框?更重要的是,如何动态获取文本框中写入的内容?@KrustoStoianov您无法直接访问
文本框。这就是为什么您需要
绑定
,当您在
ViewModel
中设置
Text
时,您的
文本框将自动更新,反之亦然。使用
UpdateSourceTrigger=PropertyChanged
ViewModel
中的
Text
属性将在
TextBox.Text
更改时立即更新。或者你的目标是什么?
<TextBox Text="{Binding Text, UpdateSourceTrigger=PropertyChanged}" />