C# 如何将简单字符串值绑定到文本框?
我正在使用wpf。我想用xaml.cs类中初始化的简单字符串类型值绑定一个文本框。C# 如何将简单字符串值绑定到文本框?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正在使用wpf。我想用xaml.cs类中初始化的简单字符串类型值绑定一个文本框。文本框没有显示任何内容。以下是我的XAML代码: <TextBox Grid.Column="1" Width="387" HorizontalAlignment="Left" Grid.ColumnSpan="2" Text="{Binding Path=Name2}"/> 你从不设定你财产的价值。仅定义set{{{u name2=“abcdef”;}在实际执行set操作之前,不会实际设置属性的值
文本框
没有显示任何内容。以下是我的XAML代码:
<TextBox Grid.Column="1" Width="387" HorizontalAlignment="Left" Grid.ColumnSpan="2" Text="{Binding Path=Name2}"/>
你从不设定你财产的价值。仅定义
set{{{u name2=“abcdef”;}
在实际执行set操作之前,不会实际设置属性的值
您可以将代码更改为如下所示,以使其正常工作:
public partial class EntitiesView : UserControl
{
private string _name2;
public string Name2
{
get { return _name2; }
set { _name2 = value; }
}
public EntitiesView()
{
Name2 = "abcdef";
DataContext = this;
InitializeComponent();
}
}
此外,正如人们所提到的,如果您打算稍后修改属性的值并希望UI反映它,则需要实现INotifyPropertyChanged
界面:
public partial class EntitiesView : UserControl, INotifyPropertyChanged
{
private string _name2;
public string Name2
{
get { return _name2; }
set
{
_name2 = value;
RaisePropertyChanged("Name2");
}
}
public EntitiesView()
{
Name2 = "abcdef";
DataContext = this;
InitializeComponent();
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
你从不设定你财产的价值。仅定义
set{{{u name2=“abcdef”;}
在实际执行set操作之前,不会实际设置属性的值
您可以将代码更改为如下所示,以使其正常工作:
public partial class EntitiesView : UserControl
{
private string _name2;
public string Name2
{
get { return _name2; }
set { _name2 = value; }
}
public EntitiesView()
{
Name2 = "abcdef";
DataContext = this;
InitializeComponent();
}
}
此外,正如人们所提到的,如果您打算稍后修改属性的值并希望UI反映它,则需要实现INotifyPropertyChanged
界面:
public partial class EntitiesView : UserControl, INotifyPropertyChanged
{
private string _name2;
public string Name2
{
get { return _name2; }
set
{
_name2 = value;
RaisePropertyChanged("Name2");
}
}
public EntitiesView()
{
Name2 = "abcdef";
DataContext = this;
InitializeComponent();
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
为什么不添加视图模型并将您的属性保留在那里 视图模型类 实体视图用户控件
为什么不添加视图模型并将您的属性保留在那里 视图模型类 实体视图用户控件
只需在
EntitiesView
构造函数中添加这一行即可
DataContext = this;
只需在
EntitiesView
构造函数中添加这一行即可
DataContext = this;
你能发布你的XAML吗?@Coder我发布了。请参阅代码的第一行。你认为你在哪里设置值到某个东西?我想通过绑定在文本框中显示值@罗兰肖。为此,我编写了Text=“{Binding Path=Name2}”。。。。我做错了吗?你需要实现
INotifyPropertyChanged
。你能发布你的XAML吗?@Coder我发布了它。请参阅代码的第一行。您认为您在哪里设置了值?我想通过绑定在文本框中显示值@罗兰肖。为此,我编写了Text=“{Binding Path=Name2}”。。。。我做错了吗?您需要实现INotifyPropertyChanged
。很抱歉这么晚才回复,但是表单控件如何订阅PropertyChangedEventHandler?很抱歉这么晚才回复,但是表单控件如何订阅PropertyChangedEventHandler?