(C#で)コンボボックスの許容値のリストに列挙の許容値を入力したいと思いますSystem.IO.Ports.Parity
。この目的のために、私はコレクションを作成しました:
public class theParitySource : ObservableCollection<Parity>
{
public theParitySource()
{
Array parities = System.Enum.GetValues( typeof( Parity ) );
foreach (Parity p in parities) this.Add(p);
}
}
(ところで:この初期化のためのワンライナーはありますか?)そしてこれをコンボボックスのデータコンテキストにしました:
...
xmlns:local="clr-namespace:myNamespace"
...
<ComboBox ...>
<ComboBox.DataContext>
<local:theParitySource />
</ComboBox.DataContext>
</ComboBox>
ただし、コンボボックスは空のままです(空として表示されますが、正しい長さであるように見えます)。デバッガーでどのようtheParitySource
に入力されるかを確認できます。このアプローチは、ボーレートに対してこれを行う別のコンボボックス(同じクラスでも)で機能します。整数値で初期化するので、ここで列挙型を使用していることに何らかの関係があると思いますが、その理由はわかりません。ポインタはありますか?コンバーターを作成する必要がありますか?
(もちろん、列挙型から文字列のリストを作成することでこれを回避できますが、これはちょっと不快です...)
編集:実際には、これらすべてをXAMLで実行したいと思います。それを行う簡単な方法はありますか?