2010-12-07 4 views
1

컨텍스트가 주어진 객체 Foo 인 usercontrol이 있습니다.변환기에서 컨텍스트를 얻으시겠습니까?

나는 텍스트가 콤보 상자 (양방향 바인드)의 선택된 값에 따라 텍스트가 변경되는 읽기 전용 모드의 텍스트 상자가 있습니다. 텍스트 상자의 값은 Foo의 많은 필드 값을 사용합니다.

지금은 ComboboxValue에 따라 변환기 Text="{Binding ComboboxValue, Converter={StaticResource MyTextConverter}} 및 코드 숨김을 작성 했으므로 Foo의 다른 값으로 구성된 문자열을 반환해야합니다. 문제는 변환기의 DataContext에 액세스 할 수 없어 전달할 수 없다는 것입니다. 경로없이 컨텍스트를 바인딩하면 (Text="{Binding Converter={StaticResource ConnectionStringTextConverter}} 사용) 콤보 상자의 값이 변경 될 때마다 (정상) 트리거되지 않습니다.

그래서, 그렇게 할 수 있습니까? 아니면 콤보 박스의 선택된 이벤트를 사용해야합니까?

감사

PS : 사실, 내가 필요한 것은 내 DataContext에 (어떤 경로)에 텍스트 상자의 Text 속성을 결합하는 것입니다,하지만 난 때마다 개체 변화의 속성 변화를 평가할 수 바인딩 필요 . 이것이 가능한가 ?

+0

사실 내가 필요한 것은 DataContext (경로 없음)에서 텍스트 상자의 Text 속성을 바인딩하는 것이지만 객체의 속성 변경이 변경 될 때마다 바인딩을 평가해야합니다. 이것이 가능한가 ? –

+0

네, 죄송합니다. 질문에 내 의견을 복사/붙여 넣기했습니다. –

답변

0

는이 같은 DataContextProxy 유틸리티 클래스를 사용할 수 있습니다

Text={Binding ComboBoxValue, Converter={StaticResource MyTextConverter}, ConverterParameter={StaticResource DataContextProxy}} 

다음 컨버터 컨버터 매개 변수를 잡아와 DataContextProxy에 캐스팅하고 데이터 소스 속성을 사용합니다.

관련 문제