문제

그만큼 Converter 블로그 게시물의 코드 속성, Silverlight 4용 Silverlight MultiBinding 솔루션, 은 종속성 속성이 아니므로 변환기와 바인딩할 수 없습니다(기술적인 이유로 사용자 컨트롤의 일부인 단순한 정적 리소스가 아닌 애플리케이션 초기에 Unity 주입의 일부로 인스턴스화해야 함).

어떻게 수정하나요? MultiBinding 바운드 변환기를 허용하는 코드는 무엇입니까?나는 그것을 종속성 속성으로 만들려고했습니다.

public IMultiValueConverter Converter { get { return (IMultiValueConverter)GetValue(ConverterProperty); } set { SetValue(ConverterProperty, value); } }
public static DependencyProperty ConverterProperty = DependencyProperty.Register("Converter", typeof(IMultiValueConverter), typeof(IMultiValueConverter), null);

하지만 난 얻었어

종속성 속성 System.Windows.Data.IMultiValueConverter....Binding.MultiBinding 유형의 개체에는 변환기를 설정할 수 없습니다.

이것이 실행 가능한 옵션이 아닌 경우 어떻게 바인딩할 수 있습니까? ConverterParameter 속성에 대한 변환기 바인딩을 시뮬레이션하기 위한 항목을 얻거나 MultiBinding?

도움이 되었습니까?

해결책

나는 "시뮬레이트된 바인딩" 경로를 사용하여 이 문제를 해결했지만, 누군가가 다른 답변을 가지고 있는 경우에는 이것이 내가 선호하는 것이 아닙니다.대신 내가 한 일은 종속성 주입을 통해 변환기를 구축하는 것이 아니라 서비스 위치를 사용하여 필요한 종속성을 가져오는 것이었습니다.일반적으로 나는 서비스 위치보다 종속성 주입을 선호합니다."서비스 위치"는 Unity 컨테이너를 애플리케이션의 전역 리소스에 저장하는 문제였습니다.거기에서 내가 필요한 것을 얻는 것은 어렵지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top