C# WPF MVVM DataGrid ComboxColumn绑定到我的模型中的列表

C# WPF MVVM DataGrid ComboxColumn绑定到我的模型中的列表,c#,wpf,datagrid,datagridcomboboxcolumn,C#,Wpf,Datagrid,Datagridcomboboxcolumn,我目前正在使用MVVM进行一个WPF项目 我有一个DataGrid绑定到一个ObservableCollection模型,如下所示: class Model : INotifyPropertyChanged { private string m_Name; public string Name { get { return m_Name; } set {

我目前正在使用MVVM进行一个WPF项目

我有一个
DataGrid
绑定到一个
ObservableCollection
模型,如下所示:

 class Model : INotifyPropertyChanged
{

    private string m_Name;
    public string Name
    {
        get
        {
            return m_Name;
        }
        set
        {
            m_Name = value;
            OnPropertyChanged("Name");
        }
    }

    private List<string> m_Names;
    public List<string> Names
    {
        get
        {
            return m_Names;
        }
        set
        {
            m_Names = value;
            OnPropertyChanged("Names");
        }
    }

    private double? m_Value;
    public double? Value
    {
        get
        {
            return m_Value;
        }
        set
        {
            m_Value = value;
            OnPropertyChanged("Value");
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;
    private void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
类模型:INotifyPropertyChanged
{
私有字符串m_Name;
公共字符串名
{
得到
{
返回m_名称;
}
设置
{
m_Name=值;
不动产变更(“名称”);
}
}
私人名单;
公开名单名称
{
得到
{
返回m_名称;
}
设置
{
m_name=值;
关于财产变更(“名称”);
}
}
私人双m_值;
公共双重价值
{
得到
{
返回m_值;
}
设置
{
m_值=值;
不动产变更(“价值”);
}
}
公共事件属性更改事件处理程序属性更改;
私有void OnPropertyChanged([CallerMemberName]字符串propertyName=null)
{
if(PropertyChanged!=null)
{
PropertyChanged(这是新的PropertyChangedEventArgs(propertyName));
}
}
现在我想使用一个
datagridcomboxcolumn
来创建一个组合框,其中我的属性“Name”作为SelectedItem,Name作为ItemSource

我的每个模型都有自己的一组名称,这些名称与任何其他模型的名称都不相同

我用谷歌搜索并查看了StackOverflow,但没有找到任何解决方案。我还尝试应用过滤器,就像我所知道的DevExpress网格控件一样,但我没有找到任何适用于基本WPF数据网格的方法


如何将我的
DataGridComboxColumn
绑定到我的模型中的属性
列表

如果使用DataGridComboxColumn,则必须向ItemsSource提供静态资源,这在“备注”部分中有说明

因为每个视图模型有不同的“名称”,所以可以使用DataGridTemplateColumn而不是DataGridComboxColumn

            <DataGridTemplateColumn Header="Name">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding Names}">
                            <ComboBox.ItemTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding}"/>
                                </DataTemplate>
                            </ComboBox.ItemTemplate>
                        </ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>                    

您尝试了什么?如果将
DataGrid
ItemsSource
属性设置或绑定到
IEnumerable
,则这应该可以工作:

<DataGridComboBoxColumn ItemsSource="{Binding Names}" SelectedItemBinding="{Binding Name}" />


有关更多建议,请参阅TechNet文章。

谢谢。这就是我要找的。