
You have a Attached dependency property called
ribbon:PopupControlService.StaysOpenOnClick="True"
That is honored by ContextMenuItems and the documentation seems to infer that it should be honored by usercontrol (and it's children) in a PopupButton's popup content. However, it is not, this leads to some miserable issues when you have a radio button or some other clickable control in your custom usercontrol that should not cause the popup to close.
Because this is an Attachable dependency property is should be easy enough to honor this for any controls that raises the click event that you must be watching to determine if the popup should close or not.
Use of your attached property seems to be the best solution, if you have another solution or a work around for the problem in the meantime please let me know.
Best Regards,
Ken