新しいUI要素とデータバインディングをコードで定義する必要があります。これらは実行時に実装されるためです。これが私がやろうとしていることの簡略版です。
データ・モデル:
public class AddressBook : INotifyPropertyChanged
{
private int _houseNumber;
public int HouseNumber
{
get { return _houseNumber; }
set { _houseNumber = value; NotifyPropertyChanged("HouseNumber"); }
}
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string sProp)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(sProp));
}
}
}
コードでのバインド:
AddressBook book = new AddressBook();
book.HouseNumber = 123;
TextBlock tb = new TextBlock();
Binding bind = new Binding("HouseNumber");
bind.Source = book;
bind.Mode = BindingMode.OneWay;
tb.SetBinding(TextBlock.TextProperty, bind); // Text block displays "123"
myGrid.Children.Add(tb);
book.HouseNumber = 456; // Text block displays "123" but PropertyChanged event fires
データが最初にバインドされると、テキストブロックが正しい家番号で更新されます。その後、コードで家番号を変更すると、本のPropertyChangedイベントが発生しますが、テキストブロックは更新されません。誰か教えてもらえますか?
ありがとう、ベン