3

生成された designer.cs プロパティは、既定でプライベートです (少なくとも、生成されたコードを手動で微調整する必要はありません)。これにより、UITableViewCell のようなものに対するコーディングは、Objective-C でこれを行っていた場合とは大きく異なります。

少なくとも私が知る限り、UIxxxViewCells の場合の一般的な方法は、UIxxxViewDataSource が IBOutlet プロパティを設定することであり、セルはビューの描画/レンダリングに関連するもののみを担当する必要があります。

Xamarin.iOS では、データ ソースからこれらのプロパティにアクセスできません。代わりに、セルを設定する追加のセッター メソッドを提供する必要があります。このように、セルは独自のプロパティを設定する責任があります。

これは単なる「.NET のやり方」ですか?

4

2 に答える 2

8

デフォルトでカプセル化を壊さないようにするためです。

アウトレットは、それが置かれているオブジェクトに属しており、外部から変更できるかどうかを選択できる必要があります。それらがプロパティであるという事実は、Xamarin.iOS アウトレット システムの実装の詳細です。これらはプライベート フィールドと考える必要があります。

それらを公開したい場合は、公開するためのプロパティを作成できます - できれば読み取り専用です。

于 2013-08-09T19:54:59.510 に答える
3

当時、MonoDevelop の他の GUI デザイナーがそのように作業していた (今でもそうしている) ため、おそらくそのように行われたのでしょう。Gtk# などのツールキット用にユーザーが設計したコントロールによって使用されるネイティブ コントロールへの自動生成バインディングも、プライベートとして作成されます。

.NET 用の他の UI デザイナーが機能するかどうかはわかりません (Visual Studio を使用して、Windows.Forms または WPF を使用して GUI アプリを開発したことはありません)。

https://bugzilla.xamarin.comで自由に機能リクエストを提出して公開してください。喜んで実装します。おそらく公開する方が理にかなっていると思います。私はそれをほとんど変更していません。

于 2013-08-09T18:06:05.900 に答える