2

私は次のコードを使用しました...

ComboboxItem item = new ComboboxItem();
item.Value = "M232M2333";
item.Text = "Apples";
comboSpriteSelect.Items.Add(item);

これは例ですが、実際には、テキストファイルからこれらの値を何百も読み取り、コンボボックスに適用しています。

.Valueを使用するとプロパティを取り戻すことができないようですが.SelectedValue、デバッグすると、値がコンボボックスに割り当てられていることがわかります。

lbl1.Text = comboSpriteSelect.SelectedValue.ToString();

誰かが解決策を提供できますか?データをバインドしていないからですか?

4

4 に答える 4

4

あなたが持っているのでComboboxItem object in combo items。SelectedItemからComboboxItemを取得し、SelectedItemをComboboxItemにキャストして戻すことにより、ComboboxItemクラスの値を取り戻します。

lbl1.Text = ((ComboboxItem)comboSpriteSelect.SelectedItem).Value;

その場合Value is not stringは、ToString()を呼び出す必要があります

lbl1.Text = ((ComboboxItem)comboSpriteSelect.SelectedItem).Value.ToString();
于 2012-10-22T18:05:15.670 に答える
3

これは、データバインディングを行っていないためです。MSDN Docには、SelectedValueはSelectedValuePathプロパティ によって決定されると記載されていますが、これは例では設定されていません。

使用する

lbl1.Text = ((ComboboxItem)comboSpriteSelect.SelectedItem).Value;

代わりは。

于 2012-10-22T18:06:35.453 に答える
1

lbl1.Text = comboSpriteSelect.SelectedItem.ToString();SelectedValueの代わりに

于 2012-10-22T18:08:21.880 に答える
0

クラスToStringでオーバーライドComboboxItem

public override string ToString()
{
   return Value;
}

そして、呼び出すcomboSpriteSelect.SelectedItem.ToString();とアイテムの値が返されます。

于 2012-10-22T18:18:13.177 に答える