2017-07-11 12 views
0

ListViewのDataTemplate内にConverterParameter={Binding}を書き込むと、現在のモデルではなく空のXamarin.Forms.Bindingオブジェクトが渡されます。現在のモデルをxamarinバインディングを使用してConverterParameterとして渡します。

これは私のコードです:

IsVisible="{Binding BindingContext.CardLoc, Source={x:Reference this} ,Converter={StaticResource MenuItemToIsVisibleReverseConverter} , ConverterParameter={Binding} " 

何もかもがここConverterParameter={Binding}

答えて

-1

除いて正常に動作しますがViewModelにして表示するコマンドパラメータを渡す方法です。

<ContentPage.Content> 
    <ListView ItemsSource="{Binding Contacts}" ItemTapped="OnItemTapped"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <TextCell 
        Text="{Binding FirstName}" 
        Detail="{Binding LastName}" 
       > 
        <TextCell.ContextActions> 
         <MenuItem 
          Text="Apagar" 
          IsDestructive="true" 
          Command="{Binding Path=BindingContext.DeleteCommand, Source={x:Reference ContactView}}" 
          CommandParameter="{Binding .}" 
         /> 
        </TextCell.ContextActions> 
       </TextCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
</ContentPage.Content> 
+0

Nooooo、I CommandParameterではなくConverterParameterを意味しますが、CommandParameterはyesで動作しますが、ConverterParameterでは動作しません。 –

+0

このリンクをチェックすると、https://forums.xamarin.com/discussion/71810/pass-binding-to-converterparameter –

+0

が有効になります。ラベルはコンバータパラメータとして渡されますが、テキストプロパティはnullです。テキスト= " {Binding Price} "、価格は現在のモデルの財産です、なぜですか? –

0

は、私はあなたが.

を置くことによって、現在のオブジェクトを渡す必要があります信じているので、それはあなたが好き参照渡しするようになったConverterParameter={Binding .}

+0

邪魔ではありません。 –

0

次のようになります。

<Element 
     Attribute="{Binding Value, 
     Converter={StaticResource YourConverter}, 
     ConverterParameter={x:reference CompareTo}}" /> 
関連する問題