자식 요소에도 변환기가있는 변환기와 함께 MultiBinding을 사용하려고합니다.TextBox.Text를 설정할 때 IMultiBindingConverter에서 문자열 배열을 가져 오는 이유는 무엇입니까?
XAML 그래서 다음과 같습니다
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource localizedMessageConverter}" ConverterParameter="{x:Static res:Resources.RecordsFound}" >
<Binding Converter="{StaticResource localizedMessageParameterConverter}" ConverterParameter="ALIAS" Path="Alias" Mode="OneWay" />
<Binding Converter="{StaticResource localizedMessageParameterConverter}" ConverterParameter="COUNT" Path="Count" Mode="OneWay" />
</MultiBinding>
</TextBlock.Text>
이이 텍스트 속성을 지정하는 TextBlock의 사용 때마다 나는 여기에 직면 해요 문제, 내 IMultiValueConverter 구현은 객체의 컬렉션을 가져옵니다 IValueConverter에 의해 반환 된 클래스 대신 문자열의. ToString() 메서드가 내부 변환기의 결과에 호출되어 IMultiValueConverter에 전달 된 것 같습니다. Label의 Content 속성을 지정하는 데 사용하는 경우 모두 정상입니다.
프레임 워크가 반환 형식이 문자열이 될 것이라고 가정하지만 그 이유는 무엇입니까? TextBlock.Text와 호환되는 결과가 나오기 때문에 MultiBinding에 대해 알 수 있습니다. 그러나 MultiBinding 내부의 Bindings에 대해서도 마찬가지입니다.
내부 바인딩 요소에서 변환기를 제거하면 네이티브 형식이 반환됩니다. 내 경우에는 string과 int.
고맙습니다. 이 기능은 WPF 4.0의 매력처럼 작동합니다. 내 첫 번째 게시물에서 언급했듯이이 라벨을 사용하면 MS Connect에서이 문제에 대해 제안 된 해결 방법 인 라벨도 사용할 수 있습니다. 대상이 String이 아닌 Object이기 때문입니다. – mcohen75