영문자 순 목록이 포함 된 ListBox가 있습니다. 각 문자에 대해 첫 번째 단어는 파란색으로, 다른 모든 단어는 흰색으로하고 싶습니다. 이전에는 적절한 전경색으로 TextBlock 컨트롤을 만들고 ListBox 컨트롤에 수동으로 추가하여 단어를 반복하면서이 작업을 수행했습니다. 비록 데이터 바인딩과 함께 이것을하고 싶습니다. 이러한 종류의 조건부 서식을 데이터 바인딩과 함께 적용하는 우아한 방법이 있습니까?Silverlight 데이터 바인딩 - 이전 요소를 기반으로 요소의 스타일을 어떻게 동적으로 변경합니까?
1
A
답변
1
이것은 일반적으로 ViewModel을 사용하는 일종의 것입니다. 당신이 할 수있는 것은 이런 걸 보이는 WordViewModel 클래스를 만드는 것입니다 (하지만 아마도에서 INotifyPropertyChanged 구현 등으로) : 당신이 당신의 ObservableCollection<WordViewModel>
에 WordViewModel
인스턴스를 추가 할 때
public class WordViewModel
{
public string Word {get; set;}
public Color ForegroundColor {get; set;}
}
, 당신은 다음 해당 속성을 설정합니다 이전에 사용했던 것과 거의 동일한 로직을 기반으로합니다. 물론 "의 분리"의 전체 위반 될 모델의
<ListBox ItemsSource="{Binding MyWords}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Word}" ForegroundColor="{Binding ForegroundColor}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
은 "foregroundColor의"를 갖는
귀하의 목록 상자는 다음과 같이 보일 것입니다. 깨끗하고 쉬운 방법이 있다면 View에서 가장 적절할 것입니다. 그러나 상황에 따라 XAML에서 더 나은 방법을 처리 할 수있는 사람이 없다면 ViewModel에 배치하는 것이 합리적이라고 생각합니다.
관련 문제
- 1. 바인딩 된 값을 기반으로 listitem의 비주얼 스타일을 어떻게 변경합니까?
- 2. Silverlight 4 스타일을 사용한 데이터 바인딩
- 3. Silverlight Toolkit에서 확장기 ToggleButton의 스타일을 변경합니까?
- 4. C#에서 동적으로 CSS 스타일을 변경합니까?
- 5. 런타임시 템플릿 요소의 바인딩을 어떻게 변경합니까?
- 6. Silverlight textbox 스타일을 사용한 조건부 바인딩
- 7. 입력 요소의 값을 어떻게 변경합니까?
- 8. 밴드 높이를 어떻게 동적으로 변경합니까?
- 9. Silverlight 데이터 바인딩 선택?
- 10. Silverlight 4 변환기에서 반환되는 내용을 기반으로 바인딩
- 11. silverlight 기본 데이터 바인딩
- 12. uipicker에서 구성 요소의 크기를 어떻게 변경합니까
- 13. jQuery를 사용하여 A 요소의 배경을 어떻게 변경합니까?
- 14. Silverlight 이미지 데이터 바인딩
- 15. Silverlight 데이터 바인딩
- 16. Silverlight 데이터 바인딩 MVVM
- 17. Silverlight 데이터 바인딩 오류
- 18. 요소의 일부 속성을 기반으로 std :: vector 요소를 어떻게 제거 하시겠습니까?
- 19. Vim 맞춤법 검사에서 하이라이트 스타일을 어떻게 변경합니까?
- 20. 페이지/사이드 바에서 목록 스타일을 어떻게 변경합니까?
- 21. jQuery 스타일을 어떻게 동적으로 전환합니까?
- 22. Dictionary에서 Silverlight 로의 열을 동적으로 바인딩 DataGrid
- 23. 다중 데이터 바인딩 문제 (Silverlight)
- 24. jquery에서 요소의 id를 변경합니까?
- 25. Zend Framework에서 컨트롤러를 어떻게 동적으로 변경합니까?
- 26. GridView에 데이터 바인딩 할 때 값을 기반으로 행의 배경색을 어떻게 변경합니까?
- 27. Silverlight 데이터 바인딩 내부 작업
- 28. UIPickerView에서 각 구성 요소의 너비는 어떻게 변경합니까?
- 29. Silverlight 4에서 동적으로 추가되는 사용자 컨트롤 바인딩
- 30. 입력 필드를 기반으로 링크를 어떻게 변경합니까?