を取得するので、私は列挙型を取り込むコンボボックスは、SelectedItemのコンボボックス
cmbSpecifics1.Items.AddRange(typeof(Aggressive).GetEnumNames());
public enum Aggressive
{
Yes,
No,
Sometimes,
Only_when_hungry
}
は、どのように私はその選択された値を取得し、プロパティにそれを送信しますか?
public Aggressive RealAggressiveLevel
{
get { return _aggressive; }
set { _aggressive = value; }
}
Bee iBee = new Bee(animal);
iBee.RealAggressiveLevel = ???cmbSpecifics1.SelectedValue???
これは私がそれを移入する方法である:
lblSpecifics1.Text = "Aggressive:";
cmbSpecifics1.Items.Clear();
cmbSpecifics1.Items.AddRange(typeof(Aggressive).GetEnumNames());
これは私がこれはイムは、データを追加する方法です
_animal = ((AnimalType)lbCategory.SelectedIndex);
switch (_animal)
{
case AnimalType.Insect:
switch ((InsectTypes)lbAnimalObject.SelectedIndex)
{
case InsectTypes.Bee:
Bee iBee = new Bee(animal);
iBee.RealAggressiveLevel = (Aggressive)Enum.Parse(typeof(Aggressive), cmbSpecifics1.SelectedValue.ToString());
iBee.Worker = tbSpecific1.Text;
iBee.Color = tbSpecific2.Text;
animalManager.Add(iBee);
break;
iBee.RealAggressiveLevel = (Aggressive)Enum.Parse(typeof(Aggressive), cmbSpecifics1.SelectedValue.ToString());
にヌル参照例外を取得するラインであります
前回の乾杯
これはどのような環境ですか?それはUWP、Windowsフォーム、WPFですか? – kettch
Windowsフォーム、ごめんなさい。 – Noxious
このソリューションは、ほとんどのアプリケーションではそうではなく、さらに多言語化する必要がある場合はUIで「Only_when_hungry」などの実際の 'enum'値テキストを書くことが許容される場合にのみ機能します。私は通常アイテムを表現するために 'Item'クラスを使い、' ToString() 'を使ってローカライズされた名前をロードするリソースファイルを使って、enum値のテキストをリソースのキーとして取得します。そして、私は欠けているか、余分なエントリがないことを確認するためにいくつかのユニットテストを持っています。 – Phil1970