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)
トリックを行います。