【发布时间】:2016-10-20 00:59:55
【问题描述】:
我对使用 UWP 非常陌生。如果这是基本的东西,我很抱歉。
我正在浏览 Microsoft 在 GitHub 上提供的一些示例。 (https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlListView)
我正在尝试做的是使用 XAML ListView 示例,但如果满足条件,则对列表应用一些条件格式。比如如果Contact.Position == "Developer",把文字的颜色改成绿色。
我在下面的链接中找到的解决方案看起来很有希望,但是,在 WPF 中使用的样式触发器在 UWP 中不可用。 Conditional formating of a TextBlock within a Listbox’s DataTemplate
为 listView 中的每个项目生成的 XAML 定义为:
<DataTemplate x:Name="SpectraListViewTemplate" x:DataType="data:spectraClass">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Ellipse x:Name="Ellipse"
Grid.RowSpan="2"
Width ="32"
Height="32"
Margin="6"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Fill="LightGray"/>
<TextBlock Grid.RowSpan="2"
Width="{Binding ElementName=Ellipse, Path=Width}"
Height="{Binding ElementName=Ellipse, Path=Height}"
Margin="6"
Foreground="{ThemeResource ApplicationPageBackgroundThemeBrush}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{x:Bind Id}"
x:Phase="1"/>
<TextBlock x:Name="SpectraListViewTemplateNameTextBox"
Grid.Column="1"
Text="{x:Bind Name}"
x:Phase="1"
Style="{ThemeResource BaseTextBlockStyle}"
Margin="12,6,0,0"/>
<TextBlock Grid.Column="1"
Grid.Row="1"
Text="{x:Bind Date}"
x:Phase="2"
Style="{ThemeResource BodyTextBlockStyle}"
Margin="12,0,0,6"/>
</Grid>
</DataTemplate>
有人有什么建议或我应该寻找的方向吗?
【问题讨论】:
标签: c# xaml listview uwp uwp-xaml