질문을 나타내는 답변이있는 Question
클래스가 있는데 답변입니다. ObservableCollection을 Question
개체로 렌더링하는 응용 프로그램이 있습니다. 각 Question
은 질문 문구에 대한 TextBlock을 포함하는 StackPanel로 렌더링되고 사용자가 대답에 입력 할 TextBox로 렌더링됩니다. 질문은 ItemsControl을 사용하여 렌더링되고 처음에는 StaticResource 키 'IncorrectQuestion'(페이지의 UserControl.Resources 섹션에 정의 됨)을 사용하여 질문의 StackPanel 스타일을 설정했습니다. 또한 UserControl.Resources 섹션에서 사용자가 질문에 올바르게 대답 할 때 질문의 StackPanel에 어떻게 든 적용해야하는 키인 'CorrectQuestion'을 정의했습니다. 내 문제는 StackPanel의 스타일을 ViewModel 클래스의 제약 조건 내에서 동적으로 변경하는 방법을 잘 모르겠습니다 (즉, 뷰의 코드 숨김에 스타일 선택 코드를 넣고 싶지 않음). 내 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을 기반으로합니다. 다음으로 생성 : -
public class BoolToStyleConverter : BoolToValueConverter<Style> { }
관련 문제
- 1. TemplateBinding + SIlverlight 4 + Default Style
- 2. 일부 로직을 기반으로 한 @ 모델
- 3. MVVM 모델 컬렉션을위한 모델?
- 4. 국가를 기반으로 한 동적 데이터
- 5. Silverlight MVVM ListBoxItem IsSelected
- 6. MVVM 및 WCF - 모델 및 모델 관계보기
- 7. 레일 - 모델 값을 0으로 설정
- 8. MVVM - 모델 자습서?
- 9. Silverlight MVVM 질문
- 10. NSString 속성의 기본값 설정
- 11. belongs_to 모델을 기반으로 한 추가 열이있는 모델
- 12. 관련 테이블을 기반으로 한 PHP 분할 모델
- 13. Silverlight MVVM 모델과 뷰 모델을 연결합니다.
- 14. 동적 속성()을 기반으로 한 django 쿼리
- 15. 뷰 모델을 기반으로 한 동적 뷰
- 16. 다른 값을 기반으로 CSS 값 설정
- 17. MVVM 모델 - ViewModel 통신
- 18. WPF MVVM : 모델 정보보기
- 19. MVVM 모델 디자인
- 20. 보기에서 MVVM 액세스 모델
- 21. WPF - MVVM - 모델 계층보기
- 22. 다른 속성의 값을 기반으로 WPF 데이터 바인딩 변경하기
- 23. 다른 동적 리소스를 기반으로 동적 리소스의 값을 정의하는 방법은 무엇입니까?
- 24. Silverlight MVVM 질문
- 25. Silverlight MVVM ListBox 바인딩
- 26. Silverlight 명령 MVVM
- 27. Silverlight 데이터 바인딩 MVVM
- 28. Silverlight MVVM MEF ViewInjection
- 29. C# - Silverlight - MVVM
- 30. 모델 또는 ViewModel이 모델 속성의 지연로드를 처리해야합니까?
나는 값 변환기를 사용해 보았지만 작동시키지 못했습니다. 나는 뭔가 잘못하고있는 것 같아. 나는 그 옵션을 재검토 할 것이다. 건배! – eponymous23