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