2017-10-23 15 views
0

ContextActionsで項目を設定する方法。私の例では、デフォルトカーを設定したいと思います。私は今では動作しないとContextActionsの項目を設定する方法Xamarin MVVM

+0

どうしたらうまくいかないのですか?あなたはコマンドがトリガーされていませんか?あなたはアプリクラッシュですか?他に何か? – Cheesebaron

+0

バインディングが機能しません。 DefultCarCommandを実行できません –

答えて

1

のMenuItemのBindingContextをあなたがリストビューのItemSourceに結合し、単一のモデルであることに注意してください、なぜ私にはわからないDelegateCommand

public DelegateCommand DefultCarCommand { get; private set; } 

を使用ViewModelには

<ListView.ItemTemplate> 
       <DataTemplate> 
        <ViewCell> 
         <ViewCell.ContextActions> 
          <MenuItem Text="Ustaw domyslny" Command="{Binding DefultCarCommand}" CommandParameter="{Binding .}"/> 
         </ViewCell.ContextActions> 
         <StackLayout> 
          <Label Text="{Binding RegistrationNumber}" /> 
          <Label Text="{Binding Brand}" /> 
         </StackLayout> 
        </ViewCell> 
       </DataTemplate> 
      </ListView.ItemTemplate> 

ViewModel全体ではありません。参照バインディングを使用して、次のようなViewModelプロパティにバインドする必要があります。

<ListView x:Name="MyListView"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <ViewCell> 
      <ViewCell.ContextActions> 
       <MenuItem Text="Ustaw domyslny" Command="{Binding Path=BindingContext.DefultCarCommand, Source={x:Reference Name=MyListView}}" CommandParameter="{Binding .}"/> 
      </ViewCell.ContextActions> 
      <StackLayout> 
       <Label Text="{Binding RegistrationNumber}" /> 
       <Label Text="{Binding Brand}" /> 
      </StackLayout> 
     </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
関連する問題