我还是wpf的新手所以这可能是一个非常简单的问题,但我无法在任何地方找到解决方案
我有一个Combobox,我已经绑定了一个ObservableCollection字节。填充列表后,我希望值以十六进制格式显示,并在开头
中显示“0x”所以例如,如果列表包含
0
120
255
然后组合框应该显示
0x00
0x78
0xFF
如何在没有任何代码的情况下以最简单的方式执行此操作?
注意 - 我尝试使用 ItemStringFormat 属性,但我无法以我想要的方式显示它
答案 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