Добавить привязку к (источнику).(Свойство).(Свойство)

#c# #data-binding

#c# #привязка данных

Вопрос:

Поэтому мне нужно использовать WinForms, потому что мое приложение будет работать на mono.

У меня есть класс с именем Logic, и у меня есть свойство типа 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);
    }
}    
  

Ответ №1:

Проблема с установкой пути привязки к Part.PartNumber заключалась в том, что Part был нулевым во время привязки.