複数のコントロールを含む項目のプロパティを作成するにはどうすればよいですか?プロパティXamarinのグリッドを取得
グリッドから継承するUserControlがあります。子を追加するAddメソッドがあります。 UserControlをコードの背後に作成し、Addメソッドを使用すると、すべて正常に動作します。しかし、私はそれをXamlに追加したいと思っています。だから私はContentというプロパティを作った。セッターはうまくいくが、私はゲッターに何を入れるべきか分からない。私が試みたすべてが失敗しました。私はそれが複数の項目を含むことができるので、私は何を得なければならないのか分かりません。 My Addメソッドは単に行または列定義を作成し、他のレイアウト機能を実行します。セッターは、コンテンツに追加された各アイテムに対して呼び出されます(私の例では2回)。
public class MyControl : Grid
{
public View Content
{
get { return WHAT?; }
set { Add(value); }
}
は、私はこのようにそれを使用したい:私がしようと
<controls:MyControl>
<controls:MyControl.Content>
<Label Text="test" />
<Label Text="test" />
</controls:MyControl.Content>
</controls:MyControl>
すべてがエラー「プロパティの内容がnullかIEnumerableをではありません」を与えます。
私が何をしようとしているのかわかっていればIDK。私は基本的に、Gridを使用して独自のタイプのStackLayoutを作成しようとしています。私はプロパティのコンテンツを呼びましたが、それは本当にグリッドの子です。私がSetterを削除すると、私のグリッドにはコンテンツがなくなります(私はAddメソッドを呼び出す方法がありません)。私はAddメソッドを呼び出すことができるように、どのようにアイテム(Xamlのもの)の追加を捕まえることができますか?私はそれを継承されたグリッドに直接追加したくありませんbc私はRowDefsまたはColumnDefsを追加してサイジングを設定する必要があります。コードでこれを行い、Addメソッドを呼び出すとうまくいきますが、Xamlでこれをやりたいのです。 – Kasper
@カスパーああ、今は意味がある。リンクされているLayoutクラスを見ると、 'OnChildAdded'と' OnChildRemoved'メソッドを見ることができます。チェーンの上に行くと、 'OnInternalAdded'や' OnInternalRemoved'のようなメソッドに気付くでしょう。彼らはどのように動作するかを解読するためにいくつかの作業が必要かもしれませんが、それは良いスタートになるはずです。 – hankide