Привязка команды в контекстном меню ListView не запускается (не найдено)? - PullRequest
0 голосов
/ 26 декабря 2018

У меня проблема привязки в ListView. Я получил ошибку:

Binding: 'OnEdit' property not found on 'ContactsViewModel', target property: 'Xamarin.Forms.MenuItem.Command'

Вот XAML (возможно, я сделал ошибку со ссылкой):

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="Contactium.ContactsPage"
         x:Name="ContactsPageContent">
<ContentPage.ToolbarItems>
...
<TextCell.ContextActions>
      <MenuItem  Command="{Binding Path=BindingContext.OnEdit, Source={x:Reference ContactsPageContent}}" CommandParameter="{Binding .}" Text="EDITER" IsDestructive="True"/>
      <MenuItem Command="{Binding Path=BindingContext.OnDelete, Source={x:Reference ContactsPageContent}}}" CommandParameter="{Binding .}" Text="SUPPRIMER"/>
</TextCell.ContextActions>
...

Здесьтакое ViewModel (ContactsPageContent):

public Command OnEdit(object sender, EventArgs e)
{
    return new Command(() =>
    {
         Debug.Write("OK");
    });
}

public Command OnDelete(object sender, EventArgs e)
{
    return new Command(() =>
    {
         Debug.Write("OK");
    });
}

Спасибо за ваше время!

1 Ответ

0 голосов
/ 26 декабря 2018

Запишите Command в форме собственности, как показано ниже

public ICommand OnEdit { get; set; }
OnEdit= new Command(EditAction); 
private void EditAction(object obj)
{ 
 Debug.Write("OK"); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...