Существует ли способ иметь другую привязку как значение нейтрализации?
Я пытаюсь сделать что-то вроде этого:
<Label Content="{Binding SelectedItem.Name, ElementName=groupTreeView,
FallbackValue={Binding RootGroup.Name}}" />
Если бы у кого-либо есть другой прием для осуществления его, который был бы большим.
То, что вы ищете, называется PriorityBinding (№ 6 в этом списке)
(из статьи)
Смысл PriorityBinding заключается в том, чтобы назовите несколько привязок данных по порядку от наиболее желаемого к наименее желательному. Таким образом, если первая привязка не удалась, пусто и / или по умолчанию, другой Связывание может занять это место.
например
<TextBox>
<TextBox.Text>
<PriorityBinding>
<Binding Path="LastNameNonExistant" IsAsync="True" />
<Binding Path="FirstName" IsAsync="True" />
</PriorityBinding>
</TextBox.Text>
</TextBox>
При каких условиях вы бы хотели использовать значение Fallback? Как бы вы определили, что привязка не удалась? Привязка остается действительной, даже если она привязана к нулевому значению.
Я думаю, что хорошей ставкой может быть использование конвертера для преобразования в значение по умолчанию, если привязка возвращает null. Я не уверен, как можно по умолчанию использовать другое связанное значение.
Ознакомьтесь с преобразователями здесь