【发布时间】:2011-03-04 16:27:42
【问题描述】:
在 Silverlight 中,我有一个将 DataContext 设置为 ViewModel 类的网格。
ViewModel 包含项目列表(每个项目都包含 int ID 和字符串文本)和一个整数“ID”,它标识当前活动的项目(未选择的项目)。
我想用 ListBox 构造 xaml,其中激活的项目有另一种颜色。我该怎么做?
具体来说,在 xaml 中,我有:
<Grid DataContext="ModelView">
<ListBox ItemsSource="Questions">
<ListBox.ItemTemplate>
<TextBlock Text="{Binding ID}" />
<TextBlock Text="{Binding Text}" />
</ListBox.ItemTemplate>
</ListBox>
<TextBlock Text="{Binding ID}" />
</Grid>`
如何根据 ModelView 中的属性 ID 设置列表框中一个(且只有一个)项的颜色?
还有一个问题 - 当我更改活动项时 - 如何刷新 ListBox?
【问题讨论】:
-
对不起,如果只有我 - 但我不确定要求是什么。
-
这个 xaml 只是一个简化的例子。我找到了解决方案,但不喜欢它 - 我必须使用布尔属性 IsActivated 和静态属性 ViewModel 扩展项目。 IsActivated 将当前项目的 ID 与活动项目的 ID 进行比较。
标签: silverlight data-binding mvvm listbox