Mam kontrolę z właściwością public MyClass MyProperty{...}
, której wartość jest wyświetlana na ekranie jako wykres. Chcę tę nieruchomość być Bindable do innego MyClass
w programie za pomocą klasy Binding
(MyProperty
byłby parametr w thisBinding
konstruktora propertyName
, a drugi MyClass
byłby parametr dataMember
).Oprawa OneWay na WinForms?
MyClass
implementuje INotifyPropertyChanged
, więc po tej stronie wszystko jest w porządku. Ale zdarza się, że jeśli nie zaimplementuję akcesora get
w MyProperty
i spróbuję powiązać z nim coś, otrzymam "Nie można powiązać z właściwością" MyProperty "na kontrolerze docelowej Nazwa parametru: PropertyName" błąd.
Czy to znaczy mam wdrożyć get
akcesor nawet jeśli wiem, że nigdy nie będzie musiał odczytać jego wartość i chcę jednokierunkowy (od źródła do celu) wiążącej, a nawet jeśli po prostu wrócić null
w get
accessor?
Zgaduję, że klasa Binding
wykorzystuje to do porównania nowej wartości ze starą lub do wykonania innych wewnętrznych rzeczy. Nie jestem więc pewien, czy dobrze jest po prostu zwrócić null
, czy lepiej byłoby zawsze zachować kopię dowolnego obiektu, który został przypisany z akcesorium set
i zwrócić go w accessorze get
. Może naprawdę nie muszę nawet pisać akcesorium get
i robię coś innego nie tak. Zdarza się, że błąd pojawia się tylko wtedy, gdy skomentuję akcesor get
i przestaję go odzyskiwać, gdy go odłożę.
Edit: W przypadku jakichkolwiek niejasności: Kiedy mówię MyProperty
„s wartość jest wyświetlana na ekranie w postaci wykresu nie mam na myśli to ma wartość, że jakiś inny kod odczytuje i pokazać na ekranie. Nikt nie czyta żadnej wartości z MyProperty
. MyProperty
's access to ten, który rysuje rzeczy na ekranie i to koniec cyklu.
Proszę sformatować, aby użyć paragrafów. –
Istnieje również powiązanie OneWayToSource. Trudno powiedzieć, czy to rozwiąże twój problem, bo nie mogę przeczytać całej rzeczy :) Podaj kilka krótkich klipów przykładowego kodu. –
Właściwie myślałem o akapitach, ale nie byłem pewien, gdzie je umieścić. Po prostu je gdzieś położę :). – Juan