<TextBlock Text = "{Binding Name}" />
если имя пустое или пустое, связать с NameOpt Что-то вроде этого:
<TextBlock Text = "{Binding if Name ? Name : NameOpt}" />
Что случилось, когда вы попробовали?
Хорошо, у меня есть два монитора, одна функция, две строки Name и NameOpt, если NameOpt имеет значение null, на обоих экранах должно отображаться имя, если NameOpt не равно null, экран одно имя печати и экран 2 NameOpt, я надеюсь, это имеет смысл. Я просто спрашиваю, есть ли опция IF else в XAML
Существует также PriorityBinding, который вы можете использовать как с привязками Name, так и с NameOpt. NameOpt должен вернуть DependencyProperty.UnsetValue, чтобы активировать привязку NameOpt.





Вы можете использовать DataTriger для достижения поведения
<Style TargetType = "TextBlock">
<Setter Property = "Text" Value = "{Binding Name}"/>
<Style.Triggers>
<DataTrigger Binding = "{Binding Name}" Value = "{x:Null}">
<Setter Property = "Text" Value = "{Binding NameOpt}"/>
</DataTrigger>
</Style.Triggers>
</Style>
Спасибо, я попробую это
Что ж, вы могли бы с DataTrigger, и вас ничто не останавливает, но, возможно, это плохой способ привязки, особенно с точки зрения MVVM. Триггеры В целом предназначены для изменения свойства на основе условий либо в самом XAML, либо на конкретном свойстве в виртуальной машине. Довольно странно делать динамическую привязку к свойству в зависимости от того, является ли свойство виртуальной машины нулевым или нет.
Чтобы сделать это исключительно из попытки виртуальной машины, ваше представление должно быть привязано к одному свойству, например Name:
<TextBlock Text = "{Binding Name}" />
... и при обработке в вашей виртуальной машине сделайте что-то вроде:
public string Name { get ; set; } // TODO: add usual property changed stuff
void UpdateStuff()
{
// perhaps update Name and NameOpt here
// ...
// Now update the exposed property
Name ? Name : NameOpt
}
Вы можете, как описано ниже, с помощью DataTrigger, но, вероятно, это должно быть выполнено в ViewModel. Не могли бы вы проиллюстрировать, почему вам нужно сделать это именно так, потому что я могу предложить более элегантное решение.