wpf2018.03.07 14:34

ConvererParameter에는 바인딩을 걸지 못한다.


그래서 사용할수 있는방법은 멀티 바인딩을 이용하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
 public class GlobalImageNameConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            var temp = values[0];
            return values[0];
        }
 
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }


이런식으로 IMultiValueConverter Interface를 구축한후


Style안에는


1
2
3
4
5
6
7
8
  <Image x:Name="img" Stretch="None">
                            <Image.Source>
                                <MultiBinding Converter="{StaticResource GlobalImageNameConverter}">
                                    <Binding Path="NormalImage" RelativeSource="{RelativeSource TemplatedParent}" />
                                    <Binding Path="IsDisable" RelativeSource="{RelativeSource TemplatedParent}" />
                                </MultiBinding>
                            </Image.Source>
  </Image>

이렇게 구현했다.


 RelativeSource="{RelativeSource TemplatedParent}" 이부분은 templatebinding이라서 넣은것이고 일반 바인딩일경우에는 없앤다.



Posted by 동동(이재동)