我需要将数字显示为二进制字符串(例如 8 => 1000)。当然,我可以使用 BitConverter 对其进行转换,并在代码隐藏文件中自行设置我的 TextBox 的文本。但这看起来有些难看。是否可以将 TextBox 绑定到某个源并自动转换它?
问问题
58 次
1 回答
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>
于 2011-03-29T04:54:47.063 回答