используйте MultiBinding , чтобы соединить все различные привязки в XAML, и напишите свой собственный IMultiValueConverter , который расставляет приоритеты / и / или присваивает каждому значению, как вам нравится. Вы не можете использовать MultiBinding без IMultiValueConverter (или StringFormat, но это бесполезно для вас)
Обратите внимание, что PriorityBinding - это НЕ то, что вы ищете здесь.
вот значение ValueConverter, которое вы можете использовать:
[ValueConversion(typeof(bool), typeof(Visibility))]
public class BooleansAndToVisibilityMultiValueConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
Func<bool, bool, bool> aggregator = (x, y) => x && y;
bool aggregate = values.Cast<bool>().Aggregate(aggregator);
return aggregate ? Visibility.Visible : Visibility.Collapsed;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}