2011-09-13 7 views
0

변환기 매개 변수로 바인딩하는 일반적인 기능이 있습니다. 내가 null을 전달하려는 변환기가 필요하지 않습니다하지만 그것은 나를하지 않는 경우는 말한다 : 컨버터가 null의 경우 내가 확인,하지만 난 문제를 추측변환기 값을 null로 설정하십시오.

Cannot set MultiBinding because MultiValueConverter must be specified. 

기능에 할당하기 전에 IMultiValueConverter은 값으로 null을 허용하지 않습니다.

그냥 입력을 반환하는 변환기 또는 오버로드 된 메서드를 만들지 않고도이 작업을 수행 할 수 있습니까? 즉


protected MultiBinding CreateBinding(object source, IMultiValueConverter converter, object parameter, object [] dps) 
    { 
     MultiBinding multiBinding = new MultiBinding(); 
     if (converter != null) 
     multiBinding.Converter = converter; 
     multiBinding.ConverterParameter = parameter; 
     ..... 

나는 위의 기능을 사용하여 변환없이 바인딩 직접 속성을 시뮬레이션 할 수 있습니다.

답변

0

MultiBinding은 MultiValueConverter 또는 StringFormat을 지정하여 각 소스를 기반으로 출력을 계산하는 방법을 정의하는 경우에만 의미가 있습니다.

달성하려는 대상이 확실하지 않지만 빈 StringFormat (string.Empty)을 지정하면 오류가 발생하지 않지만 런타임에는 아무 것도 수행하지 않습니다.

+0

바인딩을 설정할 때마다 네 줄을 입력하고 싶지 않으므로 너무 많은 공간이 필요합니다. 네 개의 매개 변수가 주어진다면 바인딩을 생성 할 수있는 보편적 인 함수가 필요합니다. 매개 변수가있는 단일 바인딩 또는 다중 바인딩이 가능합니다. StringFormat을 말할 때 당신이 무엇을 참조하는지 확신 할 수 없다. – mihajlv

+0

그런 다음 하나의 소스 만있을 때 바인딩을 사용하고 둘 이상일 때 멀티 바인딩을 사용하십시오. – alf

+0

다음 함수는 단일 또는 다중 반환 형식을 가질 수 있기 때문에 오버로드 된 메서드 나 두 개의 별도 메서드가 있어야합니다. – mihajlv

관련 문제