我是 WPF 的新手,在开发我的应用程序时出现了一个问题。假设我有一个定义如下的文本框
<TextBox x:Name="MyTextBox" />
然后在我的 C# 代码中,我可以使用以下命令更改此文本框中显示的字符串
MyTextBox.Text = "Hello!";
但是,当我们在 XAML 中使用绑定时,还有另一种方法可以实现相同的行为
<TextBox x:Name="MyTextBox" Text="{Binding Content}" />
在 C# 中我们有
public class MyText : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _content;
public string Content
{
get { return _content; }
set
{
_content = value;
PropertyChanged(this, new PropertyChangedEventArgs("Content"));
}
}
}
MyText txt = new MyText();
MyTextBox.DataContext = txt;
txt.Content = "Hello!";
显然第二个选项需要更多的编码,但是它们的结果是一样的。但是,在第二种情况下,我不必关心在 UI 线程上执行代码。因此,当我更改txt.Content
文本框中的字符串时,我的代码中的任何地方都会毫无例外地发生变化。
我的问题是:对于更改属性的这两个选项中的任何一个,是否有任何设计问题偏好?