3

我想知道是否有办法将组合框的标记值设置为非字符串数据类型。原因是我想将字节值作为标记值放置到控件中,我知道我可以以编程方式执行此操作,但我试图确认这是否可以使用声明性语句来完成。

<ComboBox Height="23" HorizontalAlignment="Left" Margin="90,37,0,0" Name="cmbReceiverBytes" VerticalAlignment="Top" Width="120">
    <ComboBoxItem Content="0xFF DefaultValue" Tag="255" />
    ....
</ComboBox>

我正在尝试各种组合,其中之一是进行解析,但它不起作用。我想与其他人确认这是否可能。

<ComboBoxItem Content="0xFF DefaultValue" Tag="{Integer.ParseInt(255)}" />
4

2 回答 2

7

要为属性分配Tag字节值,您需要使用以下 XAML 语法:

<ComboBoxItem Content="0xFF DefaultValue">
  <ComboBoxItem.Tag>
    <System:Byte>255</System:Byte>
  </ComboBoxItem.Tag>
</ComboBoxItem>

您必须添加命名空间声明xmlns:System="clr-namespace:System;assembly=mscorlib"来声明System命名空间。

于 2012-07-03T09:15:21.160 回答
6

您始终可以使用元素语法:

xmlns:sys="clr-namespace:System;assembly=mscorlib"
<ComboBoxItem.Tag>
    <sys:Int32>255</sys:Int32/>
</ComboBoxItem.Tag>

您还可以创建自己的标记扩展,允许您将字符串解析为 int。只需让它有一个接受 int 的构造函数,然后字符串将被立即解析,将其保存在字段中并以ProvideValue.

于 2012-07-03T09:09:34.810 回答