У меня есть коллекция данных, привязанная к ListBox
.Я хотел бы показать некоторый пользовательский интерфейс, основанный на том, существует ли какое-либо свойство члена коллекции.
Например:
public class Widget
{
public string foo;
public string bar;
}
public ObservableCollection<Widget> Stuff;
XAML:
<ListBox ItemsSource="{Binding Stuff}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding foo}"
Visiblity="{Binding
(foo != null ? Visibility.Visible : Visibility.Collapsed)
}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Обратите внимание на атрибут Visibility
в TextBlock
.Очевидно, что это не поддерживается, но это должно дать вам представление о том, что я хочу сделать.
Одно из возможных решений - это то, что я мог бы добавить свойство к виджету, которое выглядит так:
public Visibility has_foo;
А потом:
... Visibility="{Binding has_foo}" ...
Но, кажется, неловко создавать эти дополнительные свойства.
Я подозреваю, что есть намного лучший способ.Есть?Как бы вы это сделали?
Спасибо.