2016-08-10 8 views
0

xamlのイメージソースをXamarinフォームにバインドしようとしていますが、次のエラーが発生します。Xamarin Formsプラットフォーム固有のイメージソースのバインディングxaml

プロパティ「のiOS」を割り当てることができません:私は、しかし、映像ソースをハードコーディングすることができますが、私はする必要があります

「Xamarin.Forms.Binding」と「Xamarin.Forms.ImageSource」の間で型の不一致がそれは多くの場所で行うので、私は変更された場合は、プロジェクト全体に反映することができるプロパティにバインドすることをお勧めします。誰も私が得ているエラーでいくつかの光を投げることができますか?

現在、コンバータクラスを使用してソースを取得しています。以下はエラーを生成している私の現在のコードです。また、私はコードベースのソリューションに移行したくないので、XAMLでこれを解決できるかどうかを確認したいと思います。

<Image 
    Aspect="AspectFill" 
    Grid.Row="0" 
    Grid.Column="3" 
    Grid.RowSpan="2" 
    VerticalOptions="Center" 
    HorizontalOptions="End"> 

    <Image.Source> 
     <OnPlatform x:TypeArguments="ImageSource" 
      iOS="{Binding .,Converter={StaticResource getGestureIcon},ConverterParameter=Swipe}" 
      Android="{Binding .,Converter={StaticResource getGestureIcon},ConverterParameter=LongPress}" /> 
    </Image.Source> 
</Image> 

あなたが過度に複雑とOnPlatform使用しているバインディングをサポートしていないあなたに

答えて

1

ありがとうございます。あなたのコンバーターであなたのプラットフォームをチェックしてください。

0

@Rui Marinho:私はそのように考えなかった。それはうまくいくかもしれない。しかし、私はそれを別の方法で実装しました。つまり、静的プロパティを定義し、それを直接参照します。使用された溶液からHow to bind class properties in XAML of xamarin forms

以下はコードです。

xmlns:Icon="clr-namespace:GetIcon" 

<Image 
    Aspect="AspectFill" 
    Grid.Row="0" 
    Grid.Column="2" 
    Grid.RowSpan="2" 
    VerticalOptions="Center" 
    HorizontalOptions="End"> 
    <Image.Source> 
    <OnPlatform 
    x:TypeArguments="ImageSource" 
    iOS="{x:Static Icon:GetIcon.SwipeLeft}" 
    Android="{x:Static Icon:GetIcon.LongTap}" /> 
    </Image.Source> 
</Image> 
関連する問題