我想在对象列表中显示属性,但如果属性没有任何值,我不仅希望将其留空,而且使整行根本不存在(这是关键)。
我的意思是:假设我有一个具有四个字符串值的对象:
object person:
string firstname
string lastname
string favoriteMovie
string favoriteBook
事实上,我有一个清单:ObservableList<Person>
。我想显示每个 Person 中的Person
属性CollectionView
,仅当该属性没有值时我想跳过它。
XAML 代码看起来像这样:
<CollectionView ItemsSource={Binding People}>
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:Person">
<Frame>
<Grid>
<Label Text="{Binding Name}"/>
<Label Text="{Binding FavoriteMovie}"/>
<Label Text="{Binding FavoriteBook}"/>
...
...
...
...
</CollectionView>
我怎么做?
注意:我正在使用 MVVM 模式,如果可能的话,我希望主要在 XAML 中执行此操作。
您将需要一个转换器,将空字符串或空字符串转换为布尔值,然后需要将其分配给项目的可见性,以便像下面这样的操作可以工作,
然后在您的标签中使用它,如下所示:
然后在各自的标签中使用它: