我有一个名为Question
的类,它表示一个问题,它是答案。我有一个应用程序呈现一个ObservableCollection Question
对象。每个Question
都被渲染为一个StackPanel,其中包含用于问题的文本块以及供用户输入答案的TextBox。问题使用ItemsControl呈现,并且我最初使用名为'IncorrectQuestion'(在页面的UserControl.Resources部分中定义)的StaticResource项设置了问题的StackPanel的样式。在UserControl.Resources部分,我还定义了一个关键字'''''''''''''''''''''''',这正是我需要在用户正确回答问题时以某种方式应用到问题的StackPanel中的一种方式。我的问题是我不知道如何动态地改变StackPanel的Style,特别是在ViewModel类的约束之内(即,我不想在View的代码隐藏中放置任何样式选择代码)。我的Question
职业有一个IsCorrect
属性,这是正确设置时,更正答案。我想以某种方式反映样式选择形式的IsCorrect
值。我怎么做?Silverlight〜MVVM〜根据模型值动态设置Style属性
3
A
回答
3
使用值转换器是一种解决方案。
<Grid x:Name="LayoutRoot" Background="White">
<Grid.Resources>
<local:BoolToStyleConverter x:Key="Correctness">
<local:BoolToStyleConverter.FalseValue>
<Style TargetType="TextBox">
<Setter Property="Background" Value="Salmon" />
</Style>
</local:BoolToStyleConverter.FalseValue>
<local:BoolToStyleConverter.TrueValue>
<Style TargetType="TextBox">
<Setter Property="Background" Value="AliceBlue" />
</Style>
</local:BoolToStyleConverter.TrueValue>
</local:BoolToStyleConverter>
</Grid.Resources>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Question}" />
<TextBox x:Name="Answer" Text="{Binding Answer, Mode=TwoWay}"
Style="{Binding IsCorrect, Converter={StaticResource Correctness}}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
你可以找到的BoolToStyleConverter
的基础上,针对此blog post。 Created: -
public class BoolToStyleConverter : BoolToValueConverter<Style> { }
相关问题
- 1. 根据模板值动态设置CSS属性
- 2. 动态设置属性值
- 3. 动态设置属性值
- 4. 根据另一个属性在后台设置模型属性?
- 5. 如何根据模型属性为Backbone.js视图动态设置className?
- 6. Silverlight MVVM Light - 从xaml设置控件依赖项属性值
- 7. Silverlight MVVM:根据子状态更新父视图模型查看模型
- 8. 设置静态模型CModel的属性
- 9. 根据数据库/表列动态设置子类的属性
- 10. GAE Expando动态设置属性类型
- 11. 设置模型属性的初始值?
- 12. Laravel 5.2根据输入字段设置模型属性
- 13. navigateToURL ...设置模态属性
- 14. javascript动态设置对象属性值
- 15. 动态设置[Embed]属性值
- 16. 使用动态属性设置值
- 17. 属性动态更改不设置值
- 18. 动态设置对象属性值
- 19. MVC数据库模型动态属性
- 20. Rails根据另一个属性的值验证模型属性
- 21. 将动态类型的属性设置为动态类型
- 22. 设置模型属性
- 23. 设置ActiveRecord模型属性
- 24. 未设置模型属性
- 25. 模型的动态属性
- 26. Ember.js动态模型属性
- 27. 根据machine.config中的值设置属性或类属性
- 28. 根据继承属性设置依赖属性的默认值
- 29. 根据其他属性返回的值设置属性
- 30. 根据同一对象的其他属性设置属性值
我试过使用价值转换器,但我没有得到它的工作。我认为我只是在做错事。我会重新审视这个选项。干杯! – eponymous23 2010-06-10 15:16:57