4

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 には 3 つのオーバーロードがあります。.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)

トリックを行います。

4

0 に答える 0