0

色のlistBoxがあり、選択した色の文字列を取得したいと考えています。たとえば、 Red,yellowです。

問題は、selectedItemSystem.Windows.Media.Colorを取得して名前を取得しstring、他のケースで使用するためにキャストする必要がある場合です。これが私が使用したコードです、残念ながら私はいつもこの例外を受け取ります

Specified cast is not valid.

System.Windows.Media.Color colo = (System.Windows.Media.Color)listColor.SelectedItem;

どんな助けでも大歓迎です

4

5 に答える 5

0

リストボックスに項目を追加すると、実際にはObjects が追加されます。つまり、各リスト項目にテキストとして表示されるのは、追加したオブジェクトです.ToString()

したがって、 を追加している場合はstring、 が返されますstring。を追加Colorしている場合は、元に戻りColorます。

あなたの場合、追加するようですstring。もちろん、文字列を直接色にキャストすることはできないため、オブジェクトColorをリストに追加するか、取得した文字列を解析しSelectedValueColor.

オブジェクトを直接追加する場合は、プロパティを使用して、リストに表示されるオブジェクトのプロパティを設定するColorこともできます。SelectedValuePath

また、この投稿を見て、 と の違いを確認する必要がありますSelectedValue: SelectedItemSelectedItem 、SelectedValue、および SelectedValuePath の違い

于 2013-07-30T11:31:15.587 に答える