Checkbox Xamarin表单为复选框控件创建单击事件

Checkbox Xamarin表单为复选框控件创建单击事件,checkbox,mvvm,xamarin.forms,Checkbox,Mvvm,Xamarin.forms,因此,我尝试将复选框控件与MVVM逻辑一起使用。但是,唯一存在的事件是CheckedChanged,例如,如果我从页面导航,它也会触发 我正在搜索一个点击的事件,就像按钮一样 我是否需要使用自定义渲染器创建自定义控件,或者是否有更好的解决方案 期待答复 [编辑] 为了提供有关我的问题的更多信息,我将在下面列出代码示例 我的复选框在ListView中。每个复选框在XAML中的定义如下: ListView的ItemSource有一个属性IsCompleted和一个DelegateCommand子

因此,我尝试将复选框控件与MVVM逻辑一起使用。但是,唯一存在的事件是CheckedChanged,例如,如果我从页面导航,它也会触发

我正在搜索一个点击的事件,就像按钮一样

我是否需要使用自定义渲染器创建自定义控件,或者是否有更好的解决方案

期待答复

[编辑]

为了提供有关我的问题的更多信息,我将在下面列出代码示例

我的复选框在ListView中。每个复选框在XAML中的定义如下:


ListView的ItemSource有一个属性IsCompleted和一个DelegateCommand子任务StateChangedCommand。值得一提的是,我使用的是棱镜

在构造函数中:

SubTaskStateChangedCommand=newdelegateCommand(onSubtaskstateChangedCommand已执行);
类子任务模型:

public DelegateCommand子任务状态更改命令{get;set;}
SubTaskStateChangedCommandExecuted()上的私有无效
{
//做点什么
}
私人住宅已完工;
公共图书馆完工了
{
获取{return\u isCompleted;}
设置{u isCompleted=value;OnPropertyChanged();}
}

因此,当我使用Prism NavigationService导航到ViewModel中的另一个页面时,会触发OnSubTaskStateChangedCommandExecuted方法。但是,我注意到,当发生这种情况时,IsCompleted值不会更改。

您也可以使用IsChecked属性并将其绑定到VM属性,并在VM中的此属性更改时执行一些操作。是的,我已经尝试过了。但是,如果选中该复选框,并且我导航到别处,则属性也会更改。因此IsChecked属性的行为与CheckedChanged事件的行为相同。我不确定您在这里想做什么!你能帮我了解更多细节吗?当然。我的主页就像一个待办事项列表,您可以通过复选框完成任务。任务完成后,新状态(已选中)应保存在数据库中。您也可以通过取消选中复选框来取消完成任务。我会通过CheckedChanged事件来处理这个问题,但是如果当前状态被选中,并且我离开主页面,复选框将更改为unchecked,CheckedChanged事件将触发,最终在我的数据库中存储未经检查的状态。这里最奇怪的是,为什么每次导航时bool属性都会更改为false,因为它不应该更改。你能给我们展示一些你在checkchange上做什么的代码示例吗?你也可以使用IsChecked属性并将它绑定到一个VM属性,当VM中的这个属性发生变化时做一些操作。是的,我已经尝试过了。但是,如果选中该复选框,并且我导航到别处,则属性也会更改。因此IsChecked属性的行为与CheckedChanged事件的行为相同。我不确定您在这里想做什么!你能帮我了解更多细节吗?当然。我的主页就像一个待办事项列表,您可以通过复选框完成任务。任务完成后,新状态(已选中)应保存在数据库中。您也可以通过取消选中复选框来取消完成任务。我会通过CheckedChanged事件来处理这个问题,但是如果当前状态被选中,并且我离开主页面,复选框将更改为unchecked,CheckedChanged事件将触发,最终在我的数据库中存储未经检查的状态。这里最奇怪的是,为什么每次导航时bool属性都会更改为false,因为它不应该更改。你能给我们看一些你在支票上做什么的代码示例吗