我正在尝试通过订阅WillDisplayCell事件来更改NSTableView中的行颜色。 首先,这个事件从未提出过。 其次,NSTableView中的字段不再可选,因此功能被破坏。 对于不起作用的SelectionChanged事件,可以观察到相同的行为。
//NSTableView table
table.SelectionDidChange += SelectionChanged;
table.WillDisplayCell += WillDisplay;
如何使这些活动有效?
谢谢!
答案 0 :(得分:1)
不确定你是否解决了这个问题,但对于遇到此问题的其他人来说,解决办法就是添加一个类似于tableview示例的观察者,即
arrayController.AddObserver(this,new NSString("selectionIndexes"),NSKeyValueObservingOptions.New,IntPtr.Zero);
然后覆盖观察值方法
public override void ObserveValue (NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context)
{
...
}
这样可行,但NSTableviewBinding示例使用了不同的方法,但这对我不起作用。
答案 1 :(得分:0)
在AwakeFromNib中注册观察者就像这样
NSNotificationCenter.DefaultCenter.AddObserver (this, new Selector ("selectionChanged"), "NSTableViewSelectionDidChangeNotification", yourTableView);
然后处理选择更改
[Export("selectionChanged")]
public void SelectionDidChangeNotification(NSObject o){
...
}