2016-09-29 13 views
0

私のアプリケーションはモノで実行されるので、WinFormsを使用する必要があります。(ソース)。(プロパティ)にバインディングを追加します(プロパティ)

私はロジックと呼ばれるクラスを持っていますが、そのクラスにはパーツ番号のプロパティを持ちます。 Part Changesのときに、部品番号で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だったことです。

関連する問題