2016-08-17 17 views
0

Xamarinビヘイビアとコンバータを使用してユーザー入力フォームを検証しようとしています。 ImageResource拡張子を使ってブール値をオブジェクトに変換しようとしましたが、画像は表示されません。ここでXamarin ImageResource拡張機能が動作しません

は私のXAMLマークアップです:

<converter:BooleanToObjectConverter x:Key="boolToStyleImage" 
               x:TypeArguments="Style"> 
     <converter:BooleanToObjectConverter.FalseObject> 
      <Style TargetType="Image"> 
      <Setter Property="HeightRequest" Value="20" /> 
      <Setter Property="Source" Value="{extension:ImageResource Uno.Images.error.png}" /> 
      </Style> 
     </converter:BooleanToObjectConverter.FalseObject> 

     <converter:BooleanToObjectConverter.TrueObject> 
      <Style TargetType="Image"> 
      <Setter Property="HeightRequest" Value="20" /> 
      <Setter Property="Source" Value="{extension:ImageResource Uno.Images.success.png}" /> 
      </Style> 
     </converter:BooleanToObjectConverter.TrueObject> 
     </converter:BooleanToObjectConverter> 

とコンバータコードをオブジェクトへの私のブール:

public class BooleanToObjectConverter<T> : IValueConverter 
{ 
     public T FalseObject { set; get; } 
     public T TrueObject { set; get; } 

     public object Convert(object value, Type targetType, 
           object parameter, CultureInfo culture) 
     { 
      return (bool)value ? this.TrueObject : this.FalseObject; 
     } 

     public object ConvertBack(object value, Type targetType, 
            object parameter, CultureInfo culture) 
     { 
      return ((T)value).Equals(this.TrueObject); 
     } 
} 

と私のイメージリソース拡張クラス:

[ContentProperty("Source")] 
public class ImageResourceExtension : IMarkupExtension 
{ 
     public string Source { get; set; } 

     public object ProvideValue(IServiceProvider serviceProvider) 
     { 
      if (Source == null) 
       return null; 

      var imageSource = ImageSource.FromResource(Source); 
      return imageSource; 
     } 
} 

誰も私を助けることができますこれを整理するには?

答えて

0

はチャールズPetzoldsの本を見てください: https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/

ページ874をトリガし、行動章に正しい方向を指している必要があります。

あなたのImageResourceExtensionとBoolToObjectコンバータが正しいです。

使用するイメージに埋め込みリソースの作成アクションがあることを確認してください

+0

埋め込みリソースのビルドアクションを設定するにはどうすればいいですか?私はXamarinを初めて使っているので、vs2015でどうやってやるのか分からない。私はそれらのイメージを右クリックしたが、コンテキストメニューからアクションの作成オプションを見ることができない。 –

+0

これはプロパティセクションにあります。画像を右クリックし、[プロパティ]を選択します。ビルドアクションは、そのウィンドウの高度なセクションにあります。 –

+0

うわー、あなたは私の人生を作った、ありがとう! –

関連する問題