【发布时间】:2019-05-24 17:46:30
【问题描述】:
我的 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");
});
}
感谢您的宝贵时间!
【问题讨论】:
-
尝试这样写你的命令
public ICommand OnEdit { get; set; } OnEdit= new Command(EditAction); private void EditAction(object obj) { Debug.Write("OK"); } -
它有效,我必须使用属性所以,谢谢!