8

C#とWPFについて質問するのは本当に簡単です。私の質問は、私のこの試みの後に続きます:

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            foreach (var item in Races)
            {
                cbRace.Items.Add(item);
            }
        }
    }

    enum Races
    {
        Human=1,
        Dwarf,
        Elf,
        Orc,
        Goblin,
        Vampire,
        Centaur
    }

さて、私の質問は、コンボボックスに値(例:Human、dwarf、elf ....)をどのように追加するかです:cbRace?申し訳ありませんが、私はC#を初めて使用するので、誰かが私を助けてくれるなら、それを結集していただければ幸いです:)、よろしくお願いします。

4

7 に答える 7

23
private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        foreach (var item in Enum.GetValues(typeof(Races)))
        {
            cbRace.Items.Add(item);
        }
    }
    enum Races
    {
        Human = 1,
        Dwarf,
        Elf,
        Orc,
        Goblin,
        Vampire,
        Centaur
    }
于 2013-02-23T13:14:49.087 に答える
18

次のようなことができるはずです。

cbRace.DataSource = Enum.GetValues(typeof(Races));

列挙値の設定と取得の詳細については、この回答を確認してください。

于 2013-02-23T13:17:09.803 に答える
5

ComboBox 項目を設定する最も簡単な方法は、おそらく次のとおりです。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    cbRace.ItemsSource = Enum.GetValues(typeof(Races));
    cbRace.SelectedIndex = 0;
}

列挙値をループする必要はなく、ItemsSourceプロパティを設定するだけです。

于 2013-02-23T14:26:35.753 に答える
2

C# で列挙値をコンボボックスに追加する最短の方法

class User{

public enum TYPE { EMPLOYEE, DOCTOR, ADMIN };

}

// このクラスをフォーム Cunstructor のフォーム読み込みイベントに追加します

cmbUserType.Items.AddRange(Enum.GetNames(typeof(User.TYPE)));
于 2016-12-31T04:12:42.770 に答える
2

クレメンスがすでにそれを提供しているため、これは推奨されるソリューションではありませんが、XAML を直接追加したい場合は、それを行うこともできます。

<ComboBox>
    <urCode:Races>Human</urCode:Races>
    <urCode:Races>Dwarf</urCode:Races>
    <urCode:Races>Elf</urCode:Races>
</ComboBox>

Type にバインドされたときに Enum.GetValues を返す IValueConverter を実装することもできます。

于 2014-02-20T11:07:40.247 に答える
0
cmbUserType.Items.AddRange(core.Global.ToObjectArray(Enum.GetValues(typeof(STATUS))));
public enum STATUS { INACTIVE, ACTIVE }
于 2016-12-31T04:00:03.923 に答える
0

これを使って

cbRace.Datasource = Enum.GetValues(typeof(Races));

列挙型をコンボボックスにデータバインドし、コンボボックスの selectedValue プロパティと selectedText プロパティを使用して名前と値を取得します。

于 2013-02-23T13:20:57.510 に答える