【发布时间】:2017-07-24 11:16:09
【问题描述】:
有一个 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] 的 getter 永远不会被调用,而其他所有的 getter 每次调用 [InvokePropertyChanged] 时都会被调用。
可能出了什么问题?
【问题讨论】:
标签: c# winforms data-binding