Возможно, вам лучше написать два конвертера, один для ListBox, другой для TextBlock.Логика каждого из них была бы проще, и вам не нужно было бы передавать параметр для получения правильного результата.
Хотя это может быть не так элегантно, как в случае решения с одним преобразователем, оно будет гораздо более удобным в обслуживании.*
Если вы действительно хотите передать параметр, тогда вам нужно использовать ConverterParameter
.
Есть пример здесь , но я не уверен на 100%, что он встретитсяваши требования.Упрощенный синтаксис XAML:
<TextBlock Visibility="{Binding FavoriteFilters.IsEmpty,
Converter={StaticResource visibilityConverter}, ConverterParameter=false}"/>
<ListBox Visibility="{Binding FavoriteFilters.IsEmpty,
Converter={StaticResource visibilityConverter}, ConverterParameter=true}"/>
Затем в вашем преобразователе (упрощенно):
bool show = (bool)value;
bool visible = (bool)parameter;
if (visible)
{
return show ? Visibility.Visible : Visibility.Collapsed;
}
else
{
return show ? Visibility.Collapsed : Visibility.Visible;
}