プロパティを持つカスタムコントロールを作成する必要があります。プロパティでカスタムコントロールを作成する方法
これは私のカスタムコントロールです:
public class ExpandableStackLayout : StackLayout
{
public String Title{get;set;}
public ContentView View { set; get; }
public String Image{set;get;}
public ExpandableStackLayout(string title, string image, ContentView view)
{
Title = title;
Image = image;
View = view;
}
}
しかし、私は、XAMLでそれを使用しようとすると言う:「いいえデフォルトコンストラクタが見つかりません」と、私はこれをデフォルトコンストラクタ呼び出しを作成していない場合はパラメータでコンストラクタを呼び出します。
これは私のXAMLです:
<control:ExpandableStackLayout Title="Title" Image="imag.png">
<control:ExpandableStackLayout.View>
<ContentView>
<OtherView/>
</ContentView>
</control:ExpandableStackLayout.View>
</control:ExpandableStackLayout>
UPDATE
私はあなたのヒントを試してみましたし、私は他の問題を抱えて:コンストラクタを作成する必要はありません
public static readonly BindableProperty TitleProperty = BindableProperty.Create(
propertyName: "Title",
returnType: typeof(String),
declaringType: typeof(String),
defaultValue: String.Empty);
public String Title
{
get => (String)GetValue(TitleProperty);
set => SetValue(TitleProperty, value);
}
public ContentView View { set; get; }
public static readonly BindableProperty ImageProperty = BindableProperty.Create(
propertyName: "Image",
returnType: typeof(String),
declaringType: typeof(String),
defaultValue: string.Empty);
public String Image
{
get => (String)GetValue(TitleProperty);
set => SetValue(ImageProperty, value);
}
public ExpandableStackLayout()
{
//Do somethings whith parameters but are null
usemyParameters();
}
declaringTypeはtypeof(ExpandableStackLayout)でなければなりません。 –
プロパティのタイプは?あなたはそれをどこに置くかという少しの例を私に見せることができますか? –
確か: 'パブリック静的読み取り専用BindableProperty ImageProperty = BindableProperty.Create( propertyNameの: "イメージ"、 戻り値の:typeof演算(文字列)、 declaringType:typeof演算(ExpandableStackLayout)、 はdefaultValue:String.Emptyを);'。あなたはそれについてもっと読むことができます[ここ](https://developer.xamarin.com/guides/xamarin-forms/xaml/bindable-properties/) –