У меня есть элемент управления со свойством public MyClass MyProperty{...}
, значение которого отображается на экране в виде графика.Я хочу, чтобы это свойство можно было привязать к любому другому MyClass
в программе с помощью класса Binding
(MyProperty
будет параметром propertyName
в этом конструкторе Binding
, а другойMyClass
будет параметром dataMember
).
MyClass
реализует INotifyPropertyChanged
, поэтому с этой стороны все в порядке.Но бывает, что если я не реализую аксессор get
в MyProperty
и пытаюсь что-то с ним связать, я получаю "Невозможно связать со свойством" MyProperty "в целевом элементе управления. Имя параметра:PropertyName " ошибка.
Означает ли это, что у меня есть для реализации средства доступа get
, даже если я знаю, что мне никогда не понадобится читать его значение, и я хочу привязку OneWay (от источника к цели) и дажеесли я просто верну null
в аксессор get
?
Я предполагаю, что класс Binding
использует это для сравнения нового значения со старым или для выполнения каких-то других внутренних операций.Я не уверен, что если будет хорошей идеей просто вернуть null
, или было бы лучше всегда сохранять копию того последнего объекта, которому был присвоен метод доступа set
, и возвращать его в get
сбруя.Возможно, мне даже не нужно писать аксессор get
, и я делаю что-то еще неправильно.Случается, что я получаю сообщение об ошибке только тогда, когда закомментирую аксессор get
и перестаю получать его, когда кладу обратно.
Редактировать: В случае возникновения путаницы: КогдаЯ говорю, что значение MyProperty
отображается на экране в виде графика. Я не имею в виду, что оно имеет значение, которое какой-то другой код читает и показывает на экране.Никто не читает значения из MyProperty
.Аксессуар MyProperty
set
- это тот, который рисует вещи на экране, и это конец цикла.