wpf
Style안에서 ConverterParameter를 Binding 하기
동동(이재동)
2018. 3. 7. 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이라서 넣은것이고 일반 바인딩일경우에는 없앤다.