2016-07-06 12 views
0

私はXamarin.formsを使ってアプリを作っています。カスタムクラスのメンバのViewのプロパティをXAMLから設定する方法は? (Xamarin.forms)

私はすでにここで質問しています。 How to set child of class' property with using xaml? (Xamarin.forms) しかし、私はこれに対して正解を得ることができなかったし、解決策がないかもしれない。

私がしたいことは、クラスのビューのプロパティをContentPageのXAMLから設定することです。 私のクラスにはImageなどのビューがあります。

「ControlTemplete」が検索されました。しかし、私はそれが私が探しているものであるかどうかはわかりません。

また、BindablePropertyとOnPropertyChangedDelegateのコードを、設定したいすべてのプロパティに割り当てるのが最善の方法だとは思わない。

他にも優れたソリューションがありますか?

ありがとうございました。

+0

正しい答えが間違っていることが既に分かっている場合は、なぜその質問をしていますか? –

+0

@EdPlunkettこんにちは、私は彼の答えが間違っているとは思わない。そして私は彼に本当に感謝しています。私は別の方法があるかどうか、それとも正解で他の方法がないかを知りたい。 –

+0

そして私はそれについても問題に書いています。それは正しい答えだったようだ。あなたのコメントをありがとう –

答えて

0

ContentProperty属性を使用して、コントロール内にあるXAMLをプロパティにマップできます。この

<local:MyControl> 
    <Grid></Grid> 
</local:MyControl> 

よう

[ContentProperty("MyContent")] 
public class MyControl : ContentView 
{ 
    public View MyContent { get; set; } 
} 

そして、XAMLの気にいらでこれが唯一の財産にあなたを制限するが、いずれのタイプで動作するはずです。

+0

はい。私はその解決策を知っています。しかし、コントロールを追加するときに使用するソリューションではありませんか?私は既に追加された子コントロールのプロパティを設定しようとしています。 –

+0

@BrightLee、あなたがここで何を意味するのかはっきりしていません。コントロールはXAMLから構築され、コンストラクタの引数を設定したり、構築中に単一のコンテンツプロパティを渡すことができます。作成後は、モデルからプロパティを変更するためのバインディングがあります。あなたのシナリオは何ですか? – root

+0

hm ... MyContentという名前のXAML(MyContentPage.xamlだと思います)では、MyControlという名前のビューがあります。ビューではなくイメージであるとしましょう。そして、MyControlがStackLayoutのようなレイアウトであるとしましょう。 MyContent(Image)はMyControl.xamlで既に構築されています。 MyControlはMyContentPage.xamlで割り当てられます。今、MyContentの「Source」または「Aspect」プロパティをMyContentPage.xamlでどのように設定できますか? –

関連する問題