这个代码主要展示如何绑定Array Controller到Cell-based Tableview。在发代码前,需要注意几点。
1. Person为自定义的class,但是一定要Register为PersonModel。 格式{自定义class}Model。
2. NSMutableArray对象,一定要Export为personModelArray。格式{从1. 中得到的注册类}Array。之后的所有setter & getter 都要基于这个Export后的名称。别问我为啥知道,我吖的摸索了1个星期,疯狂修改微软的例子+看文档,终于发现还有这等潜规则。我开始逐渐明白国内为啥C#的培训机构那么少了,原来很多东西,就是有文档,还不一定能搞定。慢慢摸索吧,希望能把这本objective-c cocoa的书成功翻译成C#的入门教程。
不遵循1和2的,程序必定报错。其余的按照书上的布局xcode和绑定就行了。微软只在文档里说明了第二点,第一点压根就没说。害我真的是逐句代码排除,终于发现,注册和导出名称都要遵循潜规则。
Xcode下Array Controller的自定义类
Cell-based的tableview 绑定(下一章会用view-based tableview来绑定,两者方法不同)。图中第一个Content Mode记住改成Cell-based。这类Tableview可以利用Array Controller中默认的add & remove action。而且可以自定义NSTableViewDataSource & NSTableViewDelegate.
Cell-based tableview不用绑定Table View中的Content Array,直接绑定对应Colum的Value就行了。如图。
然后按照书上的教程,拖拽两个按钮到Array Controller(记住按ctrl + 鼠标左键)。会有对应的add 和 remove绑定。之后,绑定Remove按钮的enable属性到Array Controller的状态。
好了,开始上源代码。
Person类。注意我放在开头的第一点!!下面是cs.designer 文件中内容。
Person.cs
这个例子没有采用NSDocument (xib),下一个view-based Tableview绑定会用。为了测试,我就简单放在了ViewController.cs中。
最后看下测试图。恭喜我又成功把一个objective-c程序翻译成了C#。