2

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

我有一个绑定到字节 ObservableCollection 的组合框。填充列表后,我希望值以十六进制格式显示,开头为“0x”

所以例如,如果列表包含

0
120
255

然后组合框应该显示

0x00
0x78
0xFF

如何在没有任何代码的情况下以最简单的方式做到这一点?

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

4

1 回答 1

5

这应该做你想要的:

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

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

这 ”。” 绑定绑定到整个项目对象(在本例中为字节),格式字符串与您可以在代码隐藏中传递给 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

于 2013-11-14T02:51:29.787 回答