Diskuze: WPF události na klávesnici
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Tohle vypadá jako IronPython. V principu ale můžeš zachytávat události v pythonu takto, tj. využíváš skutečnosti, že i funkce jsou v pythonu objekty.:
class TestClass1():
_value = 0
@property
def value(self):
return self._value
@value.setter
def value(self, val):
self._value = val
self.on_change_value(self)
def on_change_value(self):
pass
class TestClass2():
_value = 0
@property
def value(self):
return self._value
@value.setter
def value(self, val):
self._value = val
self.on_change_value(self)
def on_change_value(self):
pass
def on_changed(obj):
print("Hodnota {} se změnila na {}".format(obj, obj.value))
t1 = TestClass1()
t2 = TestClass2()
#navážeš událost pro obě třídy
t1.on_change_value = on_changed
t2.on_change_value = on_changed
t1.value = 10 #vypíše změny
t1.value = 20
t2.value = 50
#Odpojíš funkci
t1.on_change_value = lambda *args:None
t1.value = 100 # už nic nevypíše
Jinak jsem to zkusil v SharpDevelopu a po chvíli boje mi to normálně funguje. že e takovou vlastnost nemá mi píše jen tehdy, když jsem se pokusil zachytávat událost myši. Je ale pravda, že mi to funguje s TextBoxem, se samotným formulářem jsem to nerozchodil.
Ano, samozřejmě jde o IronPython. Díky za odpověď, ukázalo se, že mi jen Visual Studio z nějakého důvodu nenapovídalo a ukazovalo, že "e" je neznámého typu. Potom, co jsem ze zoufalosti napsal to zdánlivě nefungující řešení, přeložil jsem to a fungovalo to podle očekávání.
To bude proto ze python je dynamicky typovany a intellisense s tim ma logicky potiz.
Zobrazeno 5 zpráv z 5.