WPF
[ MultiBinding / IMultiValueConverter ] ConverterParameter 값넘기기
스티커
2011. 3. 15. 15:35
기본적으로 하나의 행에 하나의 바인딩 밖에 안되므로;;;;
ConverterParameter 에 바인딩값을 넘길수가 없습니다.
그래서 멀티바인딩으로 값을 두개 가지고 IMultiValueConverter 에서 처리합니다.
<UserControl.Resources>
<Com_ControlLibrary_Convert:SchoolConvertMultiBinding x:Key="SchoolConvertMultiBinding"/>
<DataTemplate x:Key="SchoolNameDataTemplate">
<Grid>
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" >
<TextBlock.Text>
<MultiBinding Converter="{StaticResource SchoolConvertMultiBinding}">
<Binding Path="SchoolCode" /> 학교코드와 학교이름을 같이 넘긴다. 학교코드가 없으면 학교이름을 리턴
<Binding Path="SchoolName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
</DataTemplate>
</UserControl.Resources>
SchoolConvertMultiBinding
class RemainingTimeConverter : IMultiValueConverter { #region IMultiValueConverter Members public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { //values[0] is SchoolCode //values[1] is SchoolName throw new NotImplementedException(); } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) {
string[] splitValues = ((string)value).Split(' ');
return splitValues;
} #endregion }