2012-01-31 7 views
0

안녕하세요 기본적으로 한 가지를 제외하고 뷰 모델에 내 논리를 완전히 구분할 수있었습니다. 버튼에 적용 할 수있는 두 개의 다른 템플릿과 버튼이 있습니다. 기본적으로 오디오가 재생되는 동안 하나의 템플릿이 표시되고 다른 템플릿이 표시되지 않습니다. 내가이 페이지의 리소스에 액세스 할 수 있었기 때문에이 코드를 사용하면 쉽습니다. 그에 따라 적절하게 설정해야합니다. 이제 템플릿을 변경하는 방법을 잘 모르겠지만 내 코드가 VM에 있습니다.WP7의보기 모델에서 제어 템플릿을 변경하는 방법은 무엇입니까?

마음에 오는 첫 번째 생각은 아마도 필요할 때보기로 메시지를 보내어 변경하는 것입니다. 이것이 유일한 방법입니까? 나는 WPF가 메시지를 보낼 필요가없고 아무 코드도 코드 뒤에 놓이지 않기 때문에 꽤 좋은 것처럼 보이는 트리거를 보았다. 이 문제를 해결 한 사람이 있습니까?

답변

1

public bool IsPlaying 속성을보고 적절한 템플릿으로 변환하는 ValueConverter을 작성할 수 있습니다. 그런 다음 변환기를 변환기로 사용하여 Button 템플릿 속성을 IsPlaying 속성으로 데이터 바인딩 할 수 있습니다.

템플릿으로 시도하지는 않았지만 BitmapVisibility을 사용하여 큰 성공을 거두었으므로 여기에서도 효과가있을 것이라고 확신합니다.

이전에 하나도 사용하지 않았다면 good intro to ValueConverter입니다.

즉, 메시징은이 경우에는 그다지 끔찍한 해결책이 아닙니다. 때로는 코드 숨김 파일에 살기를 원하는 코드가 있습니다. 애니메이션 시작/정지 코드가 또 다른 예입니다.

관련 문제