2016-10-28 8 views
0

したがって、コンボボックスアイテムのソースに列挙型のコンテンツを設定したい(そして後で値を取得する)。UWPコンボボックス:Items enumを使用した人口集計

次の2つのアプローチのいずれかを使用しても問題はありませんが、達成したいものと一致しません。

comboBox.ItemsSource = Enum.GetValues(typeof(VirtualKey)); 

単純な(VirtualKey)comboBox.SelectedItemを使用して問題のない値を取得できます。問題は、ドロップダウンメニューの名前をすべて読むことができないことです。 enter image description here

comboBox.ItemsSource = Enum.GetNames(typeof(VirtualKey)); 

意図したとおりの名前が表示されますが、私は他の命令と同様の値を取得することはできません。

どのように状況を解決するためのアイデア?

答えて

1

comboBox.ItemsSource = Enum.GetNames(typeof(VirtualKey));

意図したとおりの名前が表示されますが、私は他の命令と同様の値を取得することはできません。

私はあなたが選択した値を取得しているかわからないが、その値に列挙値の名前から変換するために、あなたはEnum.Parse(Type, String) methodを使用することができます。

たとえば、ComboBox.SelectedIndexをenum変数にバインドするには、たとえばmy EnumToIntConverterなどを使用します。

+0

ありがとうございます! Enum.Parseメソッドは完全にうまく動作します:) – Cornelius

1

この不可解な行動はまた、ここで議論されました:

UWP - binding Enum differences

でも簡単なToString()コールでは、この問題を克服します。しかし、なんらかの理由で、直接XAMLバインドのWindowsランタイム列挙の中には、IReferenceというものがあります。

関連する問題