Ironpython子类化.NET类

时间:2013-04-16 13:59:16

标签: .net ironpython subclassing

我正在尝试在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)

诀窍。

0 个答案:

没有答案