“DataContext = new ...”是否实例化了一个可访问的对象?

时间:2012-09-28 20:19:25

标签: wpf

我一直在阅读WPF数据绑定,寻找简单的例子来说明如何绑定一个字符串,比如一个TextBlock,所以当字符串的值发生变化时,TextBlock就会发生..

我发现的许多网络示例都是这样的。 。 。

 public partial class Window1 : Window
 {
     public Window1()
     {
         InitializeComponent();
         this.DataContext = new Person { FirstName="Rowan" };
     }
 }

 public class Person
 {
     public String FirstName { get; set; }
     public String LastName { get; set; }
 }

...在“新”声明中指定了类的属性。那么如何在运行时将FirstName设置为其他内容呢?做了

this.DataContext = new Person { FirstName="Rowan" };

实例化Person类型的对象,其属性和方法可以像任何其他对象一样被访问,方式

Person a_person = new Person { FirstName="Rowan" };  

...会吗?如果是,那我该如何访问它?

提前致谢。

2 个答案:

答案 0 :(得分:3)

我相信你想要这样的东西:

 public partial class Window1 : Window
 {
     Person GoodPerson{get;set;}
     public Window1()
     {
         InitializeComponent();
         GoodPerson = new Person { FirstName="Rowan" };
         this.DataContext = GoodPerson;
         GoodPerson.FirstName="Rand";
     }
 }

虽然您的TextBlock会收到有关属性更改的通知,但您的Person类需要实现INotifyPropertyChanged

答案 1 :(得分:0)

您可以通过

访问用作DataContext的实例
Person p = (Person)DataContext;