WPF Привязка FallbackValue устанавливают на Привязку

Существует ли способ иметь другую привязку как значение нейтрализации?

Я пытаюсь сделать что-то вроде этого:

<Label Content="{Binding SelectedItem.Name, ElementName=groupTreeView,
                         FallbackValue={Binding RootGroup.Name}}" />

Если бы у кого-либо есть другой прием для осуществления его, который был бы большим.

36
задан Palec 6 November 2016 в 10:03
поделиться

2 ответа

То, что вы ищете, называется PriorityBinding (№ 6 в этом списке)

(из статьи)

Смысл PriorityBinding заключается в том, чтобы назовите несколько привязок данных по порядку от наиболее желаемого к наименее желательному. Таким образом, если первая привязка не удалась, пусто и / или по умолчанию, другой Связывание может занять это место.

например

<TextBox>
    <TextBox.Text>
        <PriorityBinding>
            <Binding Path="LastNameNonExistant" IsAsync="True" />
            <Binding Path="FirstName" IsAsync="True" />
        </PriorityBinding>
    </TextBox.Text>
</TextBox>
72
ответ дан 27 November 2019 в 05:38
поделиться

При каких условиях вы бы хотели использовать значение Fallback? Как бы вы определили, что привязка не удалась? Привязка остается действительной, даже если она привязана к нулевому значению.

Я думаю, что хорошей ставкой может быть использование конвертера для преобразования в значение по умолчанию, если привязка возвращает null. Я не уверен, как можно по умолчанию использовать другое связанное значение.

Ознакомьтесь с преобразователями здесь

3
ответ дан 27 November 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: