コンストラクターでラベルに入札を最初に割り当てると、ラベルは正しくバインドされ、CurrentMarket クラスの現在の ComponentData 値に基づいて正しい情報が表示されます。ただし、ComponentData が変更されると、OnPropertyChanged イベントは問題なく発生しますが、ProperyChanged ハンドラーは常に NULL です。誰かが私が間違っていることを親切に提案できますか?
ラベルがあり、バインディングを次のように設定します。
public StyledLabel(string Property, int i)
{
Binding BindingText = new System.Windows.Data.Binding(Property);
BindingText.Source = Statics.CurrentMarket.ComponentData;
BindingText.Converter = new TextConverter();
this.SetBinding(Label.ContentProperty, BindingText);
}
現在の市場クラスは次のようになります。
public class CurrentMarket : INotifyPropertyChanged
{
string sMarket = "";
ComponentData cComponentData;
public string Market
{
set
{
sMarket = value;
OnPropertyChanged("Market");
ComponentData = SharedBoxAdmin.Components[sMarket];
}
get
{
return sMarket;
}
}
public ComponentData ComponentData
{
get { return cComponentData; }
set
{
cComponentData = value;
OnPropertyChanged("ComponentData");
}
}
public CurrentMarket()
{
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string info)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(info));
}
}
}
ありがとう!