默认情况下,生成的designer.cs属性是私有的(至少不需要手动调整生成的代码)。这使得像UITableViewCell这样的编码感觉与在Objective-C中执行此操作的情况大不相同。
UIxxxViewCells的流行方式,至少从我所知道的,是UIxxxViewDataSource填充IBOutlet属性,并且单元格应该只负责与绘制/渲染视图相关的任何事情。
使用Xamarin.iOS,我们无法从数据源访问这些属性,而是需要提供其他setter方法来填充单元格。通过这种方式,单元格负责设置它自己的属性。
这只是做事的“.NET方式”吗?
答案 0 :(得分:8)
这样我们就不会默认破坏封装。
出口属于他们所在的对象,它应该能够选择是否能够从外部进行修改。它们属性的事实是Xamarin.iOS出口系统的实现细节 - 您应该将它们视为私有字段。
如果您希望公开它们,您可以创建这样做的属性 - 最好是只读。
答案 1 :(得分:3)
这可能是这样做的,因为那是MonoDevelop中其他GUI设计师当时的工作方式(仍然如此)。对Gtk#等工具包的用户设计控件使用的本机控件的自动生成绑定也被创建为私有。
我不确定.NET的其他UI设计人员是否工作(我从未使用过Visual Studio来使用Windows.Forms或WPF开发GUI应用程序)。
随意在https://bugzilla.xamarin.com上提交功能请求以使其公开 - 我很乐意实施它,我认为让他们公开更有意义。我没有改变它,主要是因为没有人表示他们希望它是任何其他方式。