2011-03-29 110 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> 
相关问题