3

コンボボックスのタグ値を文字列以外のデータ型に設定する方法があるかどうか疑問に思っていました。その理由は、バイト値をタグ値としてコントロールに配置したいからです。プログラムでこれを実行できることはわかっていますが、宣言ステートメントを使用してこれを実行できるかどうかを確認しようとしていました。

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

あらゆる種類の組み合わせを試していますが、そのうちの 1 つは解析を配置していますが、機能しません。これが可能かどうか、他の人に確認したいだけです。

<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

You can always use element syntax:

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

Also you can create your own markup extension which allows you to parse a string to int. Just make it have a constructor that takes an int, then the string will be parsed right away, save it in a field and return it in ProvideValue.

于 2012-07-03T09:09:34.810 に答える