2011-03-29 2 views
5

숫자를 이진 문자열 (예 : 8 => 1000)로 표시해야합니다. 물론 나는 그것을 BitConverter를 사용하여 변환 할 수 있으며 내 TextBox의 텍스트를 코드 숨김 파일에서 직접 설정할 수 있습니다. 그러나 이것은 다소 추해 보입니다. TextBox를 일부 소스에 바인딩하고 자동으로 변환 할 수 있습니까?바운드 소스에서 이진수로 숫자 표시

답변

4

나는이 같은 클래스 만들기 ValueConverter

를 사용하는 것이 좋습니다 것입니다 :

public class BinaryConverter : IValueConverter 
{ 

    public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return System.Convert.ToString(Convert.ToInt32(Convert.ToDouble(value)), 2); 
    } 

    public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return null; 
    } 
} 

그럼 당신은 (뒤에 코드없이)과 같이 사용할 수 있습니다

<Window.Resources> 
    <local:BinaryConverter x:Key="binConverter"></local:BinaryConverter> 
</Window.Resources> 
<StackPanel> 
    <Slider Name="sli" Minimum="0" Maximum="255" IsSnapToTickEnabled="True"> 
    </Slider> 
    <TextBox Text="{Binding ElementName=sli,Path=Value,Mode=OneWay,Converter={StaticResource binConverter}}"></TextBox> 
</StackPanel> 
관련 문제