Разработчики в общей ссылке Кишора пришли к выводу, что для создания такой MultiBinding дочерние привязки должны возвращать тот же тип результата, что и родительская MultiBinding. Таким образом, в моем случае, если я хотел, чтобы родительский MultiBinding возвращал значение типа Visibility, дочерние Bindings также должны возвращать значения Visibility. В противном случае UnsetValues будет передан вашему методу конвертера, что, вероятно, приведет к нежелательным результатам.
Вот фрагмент кода, который работает для меня. Обратите внимание, что конвертеры «VisibleIfTrue» и «EnumToVisibility» оба возвращают значения видимости типа:
<Grid.Visibility>
<MultiBinding Converter="{StaticResource MultiVisibilityConverter}">
<Binding Path="JobHasData" Converter="{StaticResource VisibleIfTrue}" />
<Binding Path="CurrentMode" Converter="{StaticResource EnumToVisibility}" ConverterParameter="{x:Static Mode.Setup}" />
</MultiBinding>
</Grid.Visibility>
Раздражает, что вы не можете передать его различным типам значений для обработки и дать вам желаемый результат. (Сначала я пытался передать bools преобразователю.)
Надеюсь, это поможет любому, кто ждал ответа семь лет. ;)