0

私はWPFデータバインディングについて読んでいて、たとえば文字列、たとえばTextBlockをバインドする方法の簡単な例を探していました。そのため、文字列の値が変わると、TextBlockも変わります。

私が見つけた多くのWebの例は、次のようになります。。。

 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; }
 }

...「new」ステートメントで割り当てられているクラスのプロパティを使用します。では、後で実行時にFirstNameを別の名前に設定するにはどうすればよいですか?やっていますか

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

他のオブジェクトと同じようにプロパティとメソッドにアクセスできるPerson型のオブジェクトをインスタンス化します。

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

...だろうか?もしそうなら、どうすればそれにアクセスできますか?

前もって感謝します。

4

2 に答える 2

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

于 2012-09-28T20:22:14.610 に答える
0

DataContextとして使用されるインスタンスには、次の方法でアクセスできます。

Person p = (Person)DataContext;
于 2012-09-29T00:30:05.827 に答える