2016-09-29 41 views
0

所以我需要使用的WinForms,因为我的应用程序将在单运行。添加绑定到(来源)。(物业)。(房产)

我有一个叫逻辑类和我有这个类我有一个零件号类型部件的属性。我想在零件更改时使用零件号更新UI。我所能做的只是绑定到Part而不是Part的属性。

public class Logic : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    [NotifyPropertyChangedInvocator] 
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) 
    { 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
    } 

    public Part Part { get; private set; } 

    public void ChangeSequence(int fixtureId) 
    {    
     Part = new Part() {partNumber = "aetrasdsd"}; 
     this.OnPropertyChanged(nameof(Vitrek_Library.Part)); 
    } 
} 

public partial class Main : Form 
{ 

    public Main() 
    { 
     InitializeComponent(); 


     Program.Logic.Initialize(omronEthernetFINSCom1); 
     Program.Logic.DataSubFixtureId.DataChanged += DataSubFixtureID_DataChanged; 
     Program.Logic.SequenceDone += Logic_SequenceDone; 

     Binding b = new Binding("Text", Program.Logic, nameof(Vitrek_Library.Part) + ".partNumber", true) 
     { 
      //FormatString = $"Part Number: {0}" 
     }; 

     lblPartNumber.DataBindings.Add(b); 
    } 
}  

回答

0

将绑定路径设置为Part.partNumber的问题是该部件在绑定时为null。