根据数据源的另一个字段有条件地在XAML中设置绑定元素的颜色

时间:2011-05-15 20:34:13

标签: xaml windows-phone-7

我在WP7列表框中有以下项目模板。我的绑定类型有一个布尔属性(Status),我想基于此有条件地设置站点名称的颜色。我该怎么做呢?

提前致谢!

<ListBox.ItemTemplate>
 <DataTemplate>
  <StackPanel Margin="0,0,0,17" Width="432">
   <TextBlock Text="{Binding SiteName}" TextWrapping="Wrap" />
   <TextBlock Text="{Binding Url}" TextWrapping="Wrap" Margin="12,-6,12,0" />
  </StackPanel>
 </DataTemplate>
</ListBox.ItemTemplate>

1 个答案:

答案 0 :(得分:3)

最简单的方法是使用转换器。你可以让转换器返回一个颜色,或者你可以有两个TextBlocks,每个TextBlocks都有你想要的颜色,并使用布尔值到可见性,一个是反向可见性,转换器隐藏/显示每个控件。

需要注意的是转换器可能很慢,因此有时绑定到ViewModel会更高效,并且ViewModel会提供您需要的对接值。