有一个Windows窗体应用程序,其中包含应由databindng更新的多个字段。 所有字段都将包含在' this'部分和全部将显示在附加的标签中,但不会显示在[BaustelleName]。
PropertyChanged?.Invoke(this, e); ScreenShoot one
使用的来源是:
public string BaustelleName
{
get { return string.IsNullOrEmpty(this.sName) ? null : sName; }
set
{
sName = value;
InvokePropertyChanged(new PropertyChangedEventArgs("BaustelleName"));
}
}
public string BaustelleZusatz
{
get { return string.IsNullOrEmpty(this.sZusatz) ? null : sZusatz; }
set
{
sZusatz = value;
InvokePropertyChanged(new PropertyChangedEventArgs("BaustelleZusatz"));
}
}
...
protected void BindControls()
{
try
{
Binding bnd = null;
cBindung bnd_Helper = new cBindung();
// txt_Baustelle ----------------------------------------------------------------------------
parent.txt_Baustelle.DataBindings.Clear();
bnd = new Binding("Text", this, "BaustelleNr", true, DataSourceUpdateMode.OnPropertyChanged);
parent.txt_Baustelle.DataBindings.Add(bnd);
//lbl_AdrBaustelle_Zl1.Text = adr.VornameName; ----------------------------------------------
parent.lbl_AdrBaustelle_Zl1.DataBindings.Clear();
bnd = new Binding("Text", this, "BaustelleName");
parent.lbl_AdrKunde_Zl1.DataBindings.Add(bnd);
//lbl_AdrBaustelle_Zl2.Text = adr.Zusatz; ---------------------------------------------------
parent.lbl_AdrBaustelle_Zl2.DataBindings.Clear();
bnd = new Binding("Text", this, "BaustelleZusatz");
parent.lbl_AdrBaustelle_Zl2.DataBindings.Add(bnd); //Zusatz
...
public void InvokePropertyChanged(PropertyChangedEventArgs e)
{
PropertyChanged?.Invoke(this, e);
}
......与其他领域相同。 我发现调用了[BaustelleName] nevver的getter,而每次调用[InvokePropertyChanged]时都会调用所有其他函数。
可能出现什么问题?
答案 0 :(得分:0)
您将绑定添加到错误的标签:您将其添加到lbl_ArdKunde而不是lbl_AdrBaustelle
//lbl_AdrBaustelle_Zl1.Text = adr.VornameName; ---------------------------------------
parent.lbl_AdrBaustelle_Zl1.DataBindings.Clear();
bnd = new Binding("Text", this, "BaustelleName");
parent.lbl_AdrKunde_Zl1.DataBindings.Add(bnd);