Отображение чисел в двоичном виде из связанного источника - PullRequest
5 голосов
/ 29 марта 2011

Мне нужно отобразить число в виде двоичной строки (например, 8 => 1000).Конечно, я могу конвертировать его с помощью BitConverter и установить текст моего TextBox самостоятельно в коде файла.Но это выглядит несколько уродливо.Можно ли привязать TextBox к какому-либо источнику и автоматически преобразовать его?

1 Ответ

4 голосов
/ 29 марта 2011

Я бы предложил использовать 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>
...