C# DataGridComboxColumn绑定到列表<;字符串>;

C# DataGridComboxColumn绑定到列表<;字符串>;,c#,wpf,xaml,datagrid,combobox,C#,Wpf,Xaml,Datagrid,Combobox,我有一个包含datagrid的WPF应用程序。datagrid绑定到我的对象OrderBlock,该对象包含类型订单列表 <DataGrid DataContext="{Binding OrderBlock}" Name="dataGridOrdersGood" ItemsSource="{Binding Orders}" 我有一个解决方案,您的列表是ComboBoxItem,这可能吗 这是我的示例XAML: &l

我有一个包含datagrid的WPF应用程序。datagrid绑定到我的对象OrderBlock,该对象包含类型订单列表

<DataGrid DataContext="{Binding OrderBlock}"
                  Name="dataGridOrdersGood" 
                  ItemsSource="{Binding Orders}"

我有一个解决方案,您的列表是ComboBoxItem,这可能吗

这是我的示例XAML:

<DataGrid AutoGenerateColumns="False" Name="myGridTest">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Text" Binding="{Binding MyText}" />
        <DataGridTemplateColumn Header="Combobox">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox SelectedIndex="0" ItemsSource="{Binding ComboList}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

我的C班

公共类测试
{
私有字符串_MyText;
私有IList_组合列表;
公开考试()
{
_MyText=“Test 123”;
_ComboList=新列表();
_添加(new ComboBoxItem(){Content=“Next”,IsSelected=true});
_添加(新的ComboBoxItem(){Content=“Prev.”});
}
公共IList组合列表
{
获取{return\u ComboList;}
设置{u ComboList=value;}
}
公共字符串MyText
{
获取{return\u MyText;}
设置{u MyText=value;}
}
}
以及测试:

    List<Test> cList = new List<Test>();
    cList.Add(new Test());
    cList.Add(new Test());
    cList.Add(new Test());
    cList.Add(new Test());
    cList.Add(new Test());

    myGridTest.ItemsSource = cList;
List cList=new List();
cList.Add(新测试());
cList.Add(新测试());
cList.Add(新测试());
cList.Add(新测试());
cList.Add(新测试());
myGridTest.ItemsSource=cList;

我希望这对您有所帮助…

看起来DataGridComboxColumn->SelectedItemBinding必须在您的案例中:

 SelectedItemBinding="{Binding StatusGood}"
您还必须设置DataGridComboBoxColumn的ItemsSource属性,并修改ViewModel以提供组合值,从而使用属性(StatusList)而不是字段

虚拟机:

公共类视图模型
{
公共列表状态列表{get;set;}
//建造师
公共视图模型()
{
StatusList=新列表();
状态列表。添加(“保持”);
状态列表。添加(“发送”);
}
}
XAML:


    List<Test> cList = new List<Test>();
    cList.Add(new Test());
    cList.Add(new Test());
    cList.Add(new Test());
    cList.Add(new Test());
    cList.Add(new Test());

    myGridTest.ItemsSource = cList;
 SelectedItemBinding="{Binding StatusGood}"
public class ViewModel 
{
    public List<string> StatusList { get; set; }

    // constructor
    public ViewModel()
    {
        StatusList = new List<string>();
        StatusList.Add("Hold");
        StatusList.Add("Send");
    }

}
 <DataGrid.Resources>
        <local:ViewModel x:Key="ComboItems"  />
 </DataGrid.Resources>

<DataGridComboBoxColumn SelectedItemBinding="{Binding StatusGood}" ItemsSource="{Binding Path=StatusList, Source={StaticResource ComboItems}}" >