I mean, I开发者_如何学运维've got a checkbox, and when it click on it.. I need to run a function to verify if can change IsChecked value or not.
It seems like a validation.
You can use the Checked (UnChecked/CheckedChanged) event(s) of the checkbox (depending on if its a WPF or a WinForms application):
CheckBox cb;
...
//WPF:
cb.Checked += (sender,e) => { if (!..check if new state is valid..) cb.Checked = !cb.Checked) };
cb.UnChecked += ...
//WinForms:
cb.CheckedChanged += ...
If the new checked state is not valid, it (un)checks the checkbox again and puts it in a valid state.
Another (and better) approach would be to disable the checkbox if a certain condition is not met (like a state of another control). It is confusing for the user if he or she checks a box and it's state is not changing without any feedback.
See MSDN for WPF / MSDN for WinForms for further informations.
The more WPF approach would be:
- Define a binding on Checkedproperty of checkbox
- Assign binding Converter
- In converter decide either the return value of binded boolean property have to be TrueorFalse
If you use WPF force you do not jump into "windows forms" like solutions, as much as it possible (depends on time you have, performance impact, complexity ...). Try to follow WPF rules.
The best approach (MVVM) would be to bind the Click event on the check box to a Command on the view model. This would allow you to intercept the check event and also disable the ability based on business logic. Please see my example post here on command binding.
http://tsells.wordpress.com/2010/06/23/command-binding-with-wpf-and-silverlight-net-4-0-with-m-v-vm/
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论