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