我正在尝试在IronPython中继承.NET RoutedUICommand。 只要我没有将任何参数传递给 init 函数,我就可以这样做。一旦我这样做,我得到一个ArgumentTypeException Instance()最多需要5个参数(给定2个)。 我已经读过有一个.overloads字典,但我如何在 init 函数中使用它?这是我的代码:
class R(RoutedUICommand):
def __init__(self, win,*args, **kwargs):
super(R, self).__init__(*args, **kwargs)
self.win = win
self.keyGesture = KeyGesture(Key.X,ModifierKeys.Control)
self.Exit = RoutedUICommand('E_xit','Exit',clr.GetClrType(RoutedUICommand),InputGestureCollection([self.keyGesture]))
self.ebinding = CommandBinding(self.Exit,self.ExitExecute,self.ExitCanExecute)
self.win.CommandBindings.Add(self.ebinding)
r = R(win)
RoutedUICommand有三个重载。如何使用.overloads将我自己的参数添加到我的班级?
如果我尝试实施新功能:
def __new__(self,win):
return super(R,self).__new__(self)
我收到MissingMemberException:对象没有属性'ExitExecute'
有没有人可以遵循一些想法?
编辑:
我发现了怎么做:
def __new__(self,win,*args,**kwargs):
return super(R,self).__new__(self,*args,**kwargs)
诀窍。