Zamierzam użyć powiązania danych między kilkoma z moich zajęć. Innymi słowy, nie wiążę wartości między klasą modelu a interfejsem użytkownika, ale wiążę zmienne między różnymi klasami.Jak wykonać powiązanie danych w kodzie za pomocą C#?
Przeczytałem o powiązaniu danych w języku C# w kilku miejscach, ale większość z nich odnosi się do powiązania między formularzem Windows i obiektem źródłowym.
Wciąż jestem nowy w C#. Jest to, jak rozumiem, co należy zrobić:
Po pierwsze, dla mojego źródłowego obiektu, powiedzmy ma nazwę klasy DataObject
. Obiekt źródłowy musi zaimplementować interfejs INotifyPropertyChange
, a następnie wywołać zdarzenie, gdy właściwość, health
, zostanie zmieniona. Nie mam z tym problemu.
Załóżmy teraz, że mam obiekt docelowy o nazwie o nazwie CharacterClass
. life
jest własnością w CharacterClass
, a także jest obiektem docelowym , który chcę powiązać z właściwością obiektu źródłowego: health
.
W jaki sposób powiązać te dwie właściwości (zarówno jednokierunkowe, jak i dwukierunkowe) w kodzie za pomocą zwykłej platformy .NET?
Trochę podstawowych informacji o tym, dlaczego ja to pytanie:
Tylko w przypadku, to jest powielany pytanie, to nie jest. Przeszukałem SE. Pozostałe pytania dotyczące wiązania danych w kodzie są w kontekście WPF lub XAML, co nie jest dla mnie. Przeczytałem także kilka artykułów na temat MSDN i wydaje mi się, że mogę stworzyć obiekt Binding
, a następnie powiązać źródło i cel poprzez BindingOperations.SetBinding()
. Jednak klasa Binding
wydaje się być częścią biblioteki WPF w obszarze nazw System.Windows.Data.Binding
. Chociaż używam C#, wątpię, bym miał luksus dostępu do bibliotek WPF, ponieważ używam głównie języka C# jako języka skryptowego w Unity3D. Sądzę, że mam tylko dostęp do frameworka .Net. Ale nie jestem tego pewien, ponieważ wciąż jestem nowy w C#.
Właściwie tak, masz rację o wiążących byt dla interfejsu danych 2-drożny. W mojej sytuacji buduję interfejs użytkownika, ale nie za pomocą formularza Windows. Wszystkie te * docelowe obiekty *, o których mówiłem, to głównie moje klasy UI. Tak więc mam nadzieję na "niestandardowe" techniki wiązania danych sortowania, które mógłbym wdrożyć na moim własnym interfejsie użytkownika innego niż WinForm. – Carven
@xEnOn: głównym problemem jest to, że silniki wiążące są ściśle powiązane z wewnętrznymi strukturami interfejsu użytkownika. Np. Powiązanie WPF używa właściwości zależności, więc jeśli chcesz go użyć, musisz napisać klasy interfejsu użytkownika, aby być potomkami 'DependencyObject'. Myślę, że powinieneś napisać swój własny silnik wiążący. – Dennis
Rozumiem. Dzięki! Wygląda na to, że nie mam szczęścia, aby użyć istniejącego mechanizmu powiązania danych C#. :(Chyba muszę sprawdzić, w jaki sposób mogę napisać mój własny silnik wiążący. Może zadam tu nowe pytanie, żeby zrozumieć, jak silniki wiążące dane działają pod maską, żeby dać sobie pomysł, jak napisać powiązanie danych Bardzo dziękuję, Dennis. :) – Carven