C# 区分单击和绑定更新复选框

C# 区分单击和绑定更新复选框,c#,wpf,checkbox,binding,inotifypropertychanged,C#,Wpf,Checkbox,Binding,Inotifypropertychanged,我有一个奇怪的情况,需要解决一个绑定。我有一个复选框,它绑定到从基类继承的虚拟函数,如下所示: Checked="CheckboxStatusChanged" Unchecked="CheckboxStatusChanged" 在状态更改内部,在主窗口和跨机器共享的json文件中设置了一个变量“enabled”。但是,在启动时加载此视图时,会从json加载“enabled”值,从而触发绑定 问题是绑定更新时会触发“Checked”事件。出于特定目的,我需要知道用户何时手动触发复选框,以及绑定何

我有一个奇怪的情况,需要解决一个绑定。我有一个复选框,它绑定到从基类继承的虚拟函数,如下所示:

Checked="CheckboxStatusChanged"
Unchecked="CheckboxStatusChanged"
在状态更改内部,在主窗口和跨机器共享的json文件中设置了一个变量“enabled”。但是,在启动时加载此视图时,会从json加载“enabled”值,从而触发绑定

问题是绑定更新时会触发“Checked”事件。出于特定目的,我需要知道用户何时手动触发复选框,以及绑定何时导致其更新


我已经深入研究了事件参数和发送者参数,但是运气不好。任何建议都会很好

我将回答这个问题,但请不要介意,因为每个人都有自己的答案

总的问题是,您将绑定与事件或代码隐藏逻辑混合在一起。我个人不建议在视图中绑定,然后在代码隐藏中绑定到事件,尽管您在很多教程中都看到了这一点。原因是为了防止您现在遇到的问题,这是您遇到的常见问题。我的建议是,您可以选择使用代码隐藏并以编程方式设置状态并处理事件,或者放弃事件并在视图中使用绑定和命令等。如果直接问到这个问题,我总是推荐binding或MVVM,所以如果你愿意接受建议,那就是我的答案