2016-09-13 4 views
1

は、私は2つの問題まず 複数のレンダラを同じコントロールに使用する場合、どのレンダラが呼び出されますか?私はXamarinに取り組んでいます

で打たれていますアプリフォーム: 私は私のカスタムボタンレンダラを持っており、それが正常に動作しています。今、私はそれ自身のボタンレンダリングを持っている別のプロジェクトのリファレンスを含んでいます。この場合、ボタンのレンダラーは2つあります。どのように呼び出され、どのように?

第2: 両方のレンダリングを使用したい場合はどうすればよいですか? は、参照されたプロジェクトのレンダラから私のレンダラを継承するが、他の1から継承された場合、それはwork.Iが私のレンダラを登録するには、この2 renderers.Howの登録で混乱していません。私は試してみました何

答えて

0

2番目の質問では、XFのコントロールを継承する新しいクラスを作成して、コントロールとレンダラーが1対1の関係になるようにしてください。あなたの最初の質問については

[assembly: ExportRenderer(typeof(Button), typeof(MyApp.Renderers.CustomButtonRenderer))] //bad 

[assembly: ExportRenderer(typeof(CutomButton), typeof(MyApp.Renderers.CustomButtonRenderer))] //good 
1

、おそらくコンパイラが使用されているいずれかになります最初に見つけた方。しかし、これは観測のみに基づいており、私はこれを裏付けるための文書を見つけられませんでした。

これはあなたがサポートする必要が何かある場合は、何を行うことができますことは、参照プロジェクト内のレンダラからアセンブリ属性を削除して、ターゲット・プロジェクトにそれらを移動さ

すなわちレンダラから次を移動し

[アセンブリ:ExportRenderer(typeof演算(CutomButton)、typeof演算(MyApp.Renderers.CustomButtonRenderer))]

が言うには、iOSのターゲットプロジェクトとはAppDelegateクラスの上に置きます。

これは、AppDelegateにこれらの行がいくつかあることを意味しますが、使用するレンダラー(ライブラリに上記の装飾が含まれていないことを確認できる場合)または独自のコード。

関連する問題