Binary 将来自绑定源的数字显示为二进制

Binary 将来自绑定源的数字显示为二进制,binary,binding,ivalueconverter,Binary,Binding,Ivalueconverter,我需要将数字显示为二进制字符串(例如8=>1000)。当然,我可以使用BitConverter进行转换,并在代码隐藏文件中自行设置文本框的文本。但这看起来有点难看。是否可以将文本框绑定到某个源并自动转换它?我建议使用ValueConverter 创建如下所示的类: public class BinaryConverter : IValueConverter { public object Convert(object value, System.Type targetType, obj

我需要将数字显示为二进制字符串(例如8=>1000)。当然,我可以使用BitConverter进行转换,并在代码隐藏文件中自行设置文本框的文本。但这看起来有点难看。是否可以将文本框绑定到某个源并自动转换它?

我建议使用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>