在xaml中以十六进制显示组合框中的字节值列表

时间:2013-11-14 02:22:13

标签: wpf combobox

我还是wpf的新手所以这可能是一个非常简单的问题,但我无法在任何地方找到解决方案

我有一个Combobox,我已经绑定了一个ObservableCollection字节。填充列表后,我希望值以十六进制格式显示,并在开头

中显示“0x”

所以例如,如果列表包含

0
120
255

然后组合框应该显示

0x00
0x78
0xFF

如何在没有任何代码的情况下以最简单的方式执行此操作?

注意 - 我尝试使用 ItemStringFormat 属性,但我无法以我想要的方式显示它

1 个答案:

答案 0 :(得分:5)

这应该做你想要的:

    <ComboBox ItemsSource="{Binding Path=testArray}">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                    <TextBlock Text="{Binding ., StringFormat=0x{0:X2}}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

基本上,您正在使用上面的项目模板替换默认的“String”项目,该模板允许您使用更有用的自定义格式化字符串。

“。”绑定绑定到整个项目对象(在本例中为字节),格式字符串是您可以在代码隐藏中传递给String.Format的相同类型的字符串。

StringFormat文档可在以下位置找到:http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat(v=vs.110).aspx

数字格式字符串可在以下位置找到:http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx