【发布时间】:2014-06-06 17:12:04
【问题描述】:
我在 XAML 中有一个 ListView 的 DataTemplate:
<DataTemplate x:Key="ResultItemTemplate">
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<TextBlock Text="{Binding Name}"
Margin="0,10,20,0"
Grid.Column="0"
Grid.Row="0"/>
<TextBlock Text="{Binding TimeStamp}"
Margin="0,10,10,0"
Grid.Column="1"
Grid.Row="0"/>
<TextBlock Text="{Binding Text}"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="1"
TextWrapping="Wrap"
Height="auto"
Margin="0,0,10,10"/>
<TextBlock Text="{Binding Additional}"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="2"
TextWrapping="Wrap"
Height="auto"
Margin="0,0,10,20" />
</Grid>
</DataTemplate>
因此,将此 DataTemplate 应用到我的 ListView,Additional TextBlock 并不存在于每个列表项中。
但是,无论 DataBinding 值是否为 null,Additional TextBlock 都存在间距。
如何仅在存在“附加”绑定属性时才添加文本块?
【问题讨论】:
-
您可以将 TextBlock 的“可见性”属性绑定到相同的属性(附加)并编写自己的 IValueConverter