C# WPF枚举绑定到组合框

C# WPF枚举绑定到组合框,c#,wpf,xaml,combobox,enums,C#,Wpf,Xaml,Combobox,Enums,我的枚举未绑定到我的联系人管理器 我有一个枚举类 [Serializable] public enum Group { Friend, Family, Coworker } } 然后我有我的主窗口,它初始化我的联系人管理器 public partial class MainWindow : Window { //public List<Contact> ContactList =

我的枚举未绑定到我的联系人管理器

我有一个枚举类

    [Serializable]
    public enum Group
    {
        Friend,
        Family,
        Coworker
    }
}
然后我有我的主窗口,它初始化我的联系人管理器

public partial class MainWindow : Window
    {
        //public List<Contact> ContactList = new List<Contact>();
        public ObservableCollection<Contact> ContactList = new ObservableCollection<Contact>();



        string fileName = null;


        Contact furqan = new Contact("Herp Derp");
        Contact rizwan = new Contact("Merp Meep");

        public MainWindow()
        {
            InitializeComponent();
            myItemsControl.ItemsSource = ContactList;
            //myComboBox.ItemsSource = Enum.GetValues(typeof(Group));
            //myComboBox.ItemsSource = Enum.GetValues(typeof(Group)).Cast<Group>();


            furqan.HomePhone = "801238421";
            ContactList.Add(furqan);
            ContactList.Add(rizwan);


            this.DataContext = this;
        }
公共部分类主窗口:窗口
{
//public List ContactList=新列表();
public ObservableCollection ContactList=新建ObservableCollection();
字符串文件名=null;
联系人furqan=新联系人(“Herp Derp”);
联系人rizwan=新联系人(“Merp Meep”);
公共主窗口()
{
初始化组件();
myItemsControl.ItemsSource=联系人列表;
//myComboBox.ItemsSource=Enum.GetValues(typeof(Group));
//myComboBox.ItemsSource=Enum.GetValues(typeof(Group)).Cast();
furqan.HomePhone=“801238421”;
联系人列表。添加(furqan);
联系人列表。添加(rizwan);
this.DataContext=this;
}
我的XAML看起来像这样

    <Label Grid.Row="7" Content="Home Email:"/>
    <TextBox Grid.Row="7" Text="{Binding ElementName=myItemsControl, Path=SelectedItem.PersonalEmail, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

    <Label Grid.Row="8" Content="Work Email:"/>
    <TextBox Grid.Row="8" Text="{Binding ElementName=myItemsControl, Path=SelectedItem.WorkEmail, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>


    <Label Grid.Row="10" Content="Group:"/>
    <ComboBox Grid.Row="10" Grid.Column="1" Text="{Binding ElementName=myItemsControl, Path=SelectedItem.ContactGroup, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

组合框应该在里面显示“同事、家人、朋友”,但它没有,它应该与我的联系人类绑定


如何正确绑定此文件,使其与我的联系人一起工作

编辑 除了我的枚举之外,一切都正常


所有文本框都显示了它们应该显示的内容。只有ComboBox不起作用,因为它没有绑定到枚举可以包含的所有值。我需要创建一个IEnumerable,可能是一个ObservableCollection,并将组的所有值添加到其中,然后绑定到它。这是可行的,但是我不知道如何绑定我的联系人列表(保存我所有联系人的observablecollection)来保存团体收藏。有什么想法吗


谢谢!

我通过以下操作修复了它:

<ComboBox ItemsSource="{Binding ElementName=myItemsControl, Path=SelectedItem.ContactGroupValues, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
                      SelectedItem="{Binding ElementName=myItemsControl, Path=SelectedItem.ContactGroup, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Row="10" Grid.Column="1"/>

然后在Contact类中:

private Group _Group;

        public Group ContactGroup
        {
            get
            {
                return _Group;
            }
            set
            {
                _Group = value;
            }
        }

        public IEnumerable<Group> ContactGroupValues
        {
            get
            {
                return Enum.GetValues(typeof(Group)).Cast<Group>();
            }
        }
private Group\u Group;
公共组联系人组
{
得到
{
返回组;
}
设置
{
_组=值;
}
}
公共IEnumerable联系人组值
{
得到
{
返回Enum.GetValues(typeof(Group)).Cast();
}
}

潜在相关:我已经看到了这一点,但没有太大帮助。这不是为了我的确切目的。你确定绑定有效吗?TextBox是否显示了它们应该显示的内容?所有TextBox都显示了它们应该显示的内容。只有ComboBox不起作用,因为它没有绑定到枚举可以包含的所有值。我需要确定一个IEnumerable,可能是一个ObservableCollection,并将组的所有值添加到其中,然后绑定到它。这是可行的,但是我不知道如何绑定我的联系人列表(保存我所有联系人的ObservableCollection)来保存组集合。有什么想法吗?重复问题:
private Group _Group;

        public Group ContactGroup
        {
            get
            {
                return _Group;
            }
            set
            {
                _Group = value;
            }
        }

        public IEnumerable<Group> ContactGroupValues
        {
            get
            {
                return Enum.GetValues(typeof(Group)).Cast<Group>();
            }
        }