wpf2018.03.07 17:34

대부분 컨버터는 바인딩을 걸고 쓰지만 아래와 같이 영문버전 한글버전 식으로 컨버터를 쓰고 싶다면

이미지소스 에 바인딩을 걸어 버리면 된다.



1
2
3
4
5
 <Image  Stretch="None" Visibility="{Binding IsShowInfoWordImage, Converter={StaticResource BoolToVisibilityConverter}}">
                        <Image.Source>
                            <Binding Source="/BANAPRESSO_KIOSK;component/Images/order_list_info_words.png" Converter="{StaticResource GlobalImageNameConverter}" />
                        </Image.Source>
</Image>

Posted by 동동(이재동)
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 동동(이재동)
wpf2017.09.06 12:13

예를 들면 3이라는 숫자가 바인딩 되어 있고

이걸 3개월로 바꾸고 싶으면 Converter를 쓰면 되지만 일일이 만들기가 엄청 귀찮다


 <TextBlock Text="{Binding Month, StringFormat={}{0}개월}"/>


돈도 

<TextBlock Text="{Binding Money,StringFormat='##,#'}" />


이렇게 하면 300,000 형식으로 나온다.



Posted by 동동(이재동)
Windows Phone 72012.03.06 16:30

<Application.Resources>

        <ResourceDictionary>

에 들어가면 된다.

 

<Converters:MusicVideoExistVisiblityConverter x:Key="MusicVideoExistVisiblityConverter" />

이런 컨버터를 모든 View에 다 넣을려고 하면 힘드니깐..

 

app.xaml에 보관하면 다음부터 쓸때 그냥 컨버터 이름만 쓰면 된다.

Posted by 동동(이재동)
Windows Phone 72011.03.21 18:17

대부분 컨버터 쓸때

 

<phone:PhoneApplicationPage.Resources>
        <Converter:FileNameToFilePathImageConverter x:Key="FTFConverter" />        

 

이런식으로 phoneApplicationPage.Resources안에 넣는다.

 

그러면 Control을 만들려고 할때 쓰는 generic.xaml에서 쓸려면 어디에 넣어야 할까?

 

<Setter Property="ItemTemplate" >            
           <Setter.Value>                
               <DataTemplate>
                   <Grid x:Name="grid">
                       <Grid.Resources>
                           <c:FileNameToFilePathImageConverter x:Name="FTFConverter" />
                       </Grid.Resources>

 

그렇다 이런식으로 Grid.Resources같이  패널 안에 리소스를 만들어 쓰면 된다.

Posted by 동동(이재동)