ここでの正確な正しいアプローチが何であるかはわかりませんが、これは役立つかもしれません。
monomac バインディングによって提供されるイベントは、生成されたデリゲートとして「内部」で実装されます。NSTableView
デリゲートは、列の移動やサイズ変更など、 の場合に説明した多くの機能をカプセル化します。
これについては、ここで説明します(モノタッチを指しますが、概念は同じです)。
イベントをサブスクライブすると、デリゲートが内部的に生成された実装に設定され、必要なすべての機能が提供されなくなると思います (これは間違っている可能性があります)。この関連するバグを参照してください。
公開されているすべてのイベントをサブスクライブしてみNSTableView
て、それが役立つかどうかを確認できます。
それ以外の場合は、イベントを使用するのではなく、独自のデリゲートから直接通知を取得するのが最善の方法です。たとえば、次のようになります。
public override void AwakeFromNib()
{
tableView.Delegate = new MyDelegate();
}
private class MyDelegate : NSTableViewDelegate
{
public override void ColumnDidMove(NSNotification notification)
{
Console.WriteLine("column did move");
}
}