Se si esegue in problemi con il legame ai valori nulli e PriorityBinding (come Shimmy sottolineato) si potrebbe andare con MultiBinding e un MultiValueConverter del genere:
public class PriorityMultiValueConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values.FirstOrDefault(o => o != null);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Usage:
<TextBox>
<TextBox.Text>
<MultiBinding Converter="{StaticResource PriorityMultiValueConverter}">
<Binding Path="LastNameNull" />
<Binding Path="FirstName" />
</MultiBinding>
</TextBox.Text>
</TextBox>
Il problema è che PriorityBinding tratta una stringa nulla come vincolante con successo – Shimmy
da [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding%28v=vs.110 % 29.aspx): 'Il valore DependencyProperty.UnsetValue non è considerato un valore restituito con esito positivo. - Quindi, utilizzare un convertitore sull'associazione che restituisce tale proprietà se il valore è nullo. @Shimmy –