This is because it does not work to bind visibility with a converter on the ContentPresenter
element.
If you change the ContentPresenter
to a ContentControl
it will work to bind the visibility property with a converter, and then you don't have to nest it within another element.
This is apparently because ContentPresenter
is a light weight element that is meant to be used within a ControlTemplate
.
From MSDN (with my highlighting):
You typically use the ContentPresenter in the ControlTemplate of a ContentControl to specify where the content is to be added. Every ContentControl type has a ContentPresenter in its default ControlTemplate.
When a ContentPresenter object is in a ControlTemplate of a ContentControl, the Content, ContentTemplate, and ContentTemplateSelector properties get their values from the properties of the same names of the ContentControl. You can have the ContentPresenter property get the values of these properties from other properties of the templated parent by setting the ContentSource property or binding to them.