2017-05-22 7 views
0

私はアイテムソースを子として設定したリストビューを持っています。私はコンバーターを介して色を設定するビューに子オブジェクトをバインドしたい。Xamarinフォーム:IValueConverterはConvertメソッドでヌル値を受け取ります

変換メソッドが呼び出されましたが、渡された値はnullでした。

ドット以外にもPath=/を使用しますが、コンバータに渡される値はまだnullです。プロパティをバインドすると、現在のアイテムではありません。ラインはおそらく犯人であることを

<ListView x:Name="childListView" 
    VerticalOptions="FillAndExpand" 
    HasUnevenRows="true" 
    ItemSelected="OnItemSelected" 
    ItemTapped="OnItemTapped"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
       <ViewCell.View> 
        <StackLayout 
         BackgroundColor="{Binding ., Converter={StaticResource accountedToColorConverter}}" 
         Spacing="0" Padding="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> 
         <StackLayout Orientation="Horizontal" Spacing="10" Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"> 
          <StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand"> 
           <controls:CircleImage> 
+0

"。 'BackgroundColor'プロパティのバインディングでコード内にあることを意味しますか?このXAMLのコードを表示すると、 – apineda

+0

が見つかるはずです。XAMLでは、通常、値コンバーターは 'ResourceDictionary'でインスタンス化され、' StaticResource'マークアップ拡張を使用してBinding式で参照されます。 plzはヘルプを得るために関連コードを提供します。 – Fahadsk

+0

"。"私はリストにグループバインディングを持っている私の他のコードで使用されていました。そのグループでは、文字列と他のオブジェクトグループがあります。 "。"リスト内の現在の項目を表します。私はIValueConverterでそれを使用するのではなく、テンプレートセレクタでそれを使用しました。 – LittleFunny

答えて

1

Phatyeはライン

BackgroundColor="{Binding ., Converter={StaticResource accountedToColorConverter}}"

が犯人であると言って間違いで正しいです。私はあまりにもあなたが実行していると同じnull参照の問題に実行するために、コンバータでは{Binding .}{Binding Path=.}を使用しようとしました。 Xamarinはこれを好まないようです。

適切な解決策は、あなたがにバインドするプロパティの適切なパスを渡すことになります。プロパティを想定し

は、そうでない場合は、あなたがこれを行うことができ、トップレベルのプロパティ

BackgroundColor="{Binding Path=accounted, Converter={StaticResource accountedToColorConverter}}"

次のとおりです。

BackgroundColor="{Binding Path=topLevelProperty.accounted, Converter={StaticResource accountedToColorConverter}}"

0
BackgroundColor="{Binding ., Converter={StaticResource accountedToColorConverter}}" 

。ページのバインディングコンテキストが単一の "AccountedTo"プロパティである場合にのみ有効です。 "{Binding BackgroundProperty}" に変更します。ここで、 "BackgroundProperty"は "AccountedTo"値です。

関連する問題