2011-11-08 2 views
0

단일 UserControl 통해 단일 ViewModel 설정하는 방법을 알고 싶습니다. 내가 ItemsSource에 바인딩 된 사용자 정의 컨트롤 안에 Items 컨테이너를 사용하고 있고 코드 숨김 인스턴스가있는 ViewModel에 대한 코드 숨김 대체로 업데이트하지 않는 것 같습니다ViewModel 통해 사용자 정의 컨트롤을 통합하십시오.

사용자 정의 컨트롤의 모든 텍스트 항목의 DataBound 전경색을 변경하면 ItemsControl 내부의 항목이 변경된 것처럼 보입니다. datacontext 변경을 강요하면 수집 항목이 표시에서 제거되었습니다.

나는 내가 개념적으로 여기에서 잘못 생각했다고 생각한다. 아무도 도와 줄 수 있니?

+0

문제는 실제로 UserControls에서 사용자 지정 색을 사용하는 것입니다. 채워진 ItemsControl이 다른 Itemsource에 할당 될 때까지 코드 뷰에서 다른 ViewModel 인스턴스에 DataContext를 할당하면 올바르게 작동합니다. 이 동작을 달성하는 가장 좋은 방법은 무엇입니까? –

답변

0

ItemsSource를 ViewModel의 속성에 바인딩하는 것이 좋습니다.

+0

그것은 실제로 그것에 바인딩되어 있습니다. 어쩌면 그것이 왜 쓰여지는지. –

+0

전혀 작동하지 않습니다. Items 컨트롤에 바인딩 된 컬렉션 내부의 부모에서 ForegroundColor에 액세스하려고합니다. 모든 색상 브러시 바인딩은 컴파일 타임에 발생합니다. 컬렉션 내의 컨트롤에서 텍스트의 색상을 변경할 수 없습니다. –

+0

Itemtemplate 내부에서 루트의 색상에 액세스하는 방법은 무엇입니까? –

1

스토리 보드를 사용하여 색상을 변경해도 문제가 해결 될 수 있지만 문제는 여전히 동일합니다. 궁극적 인 해결책은

http://windowsphonegeek.com/tips/how-to-access-a-control-placed-inside-listbox-itemtemplate-in-wp7

특이한 것은 비록이 튜토리얼에서와 같이 시각적 트리를 검색하여 가능한 템플릿, 내부 리소스에 액세스 할 수 있었다 나는 안에 내 개체를 찾을 필요가 있다고했다 초기 객체가 반환되었습니다. 시스템에서 생성 한 객체를 반환하는 것으로 보이므로 자신을 보지 못합니다. 이 가운데에서 답을 찾으면 도움이되었습니다. 또한 나중에 쉽게 액세스 할 수 있도록 항목 목록에 밀어 넣으면 일반적인 아이디어가 될 수 있지만 MS는이 사전 작업을 수행하는 방법을 수정해야합니다.

+0

이것은 계획대로 작동하지 않았습니다. datatemplate 내의 Storyboard는 itemcollection의 첫 번째 항목 만 애니메이션으로 처리합니다. –