Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合框不';在DataGridTemplateColumn中不显示绑定数据_C#_Wpf_Xaml_Combobox_Datagrid - Fatal编程技术网

C# 组合框不';在DataGridTemplateColumn中不显示绑定数据

C# 组合框不';在DataGridTemplateColumn中不显示绑定数据,c#,wpf,xaml,combobox,datagrid,C#,Wpf,Xaml,Combobox,Datagrid,我创建了一个自定义DataGrid,其中定义了组合框列。我试图向combobox提供itemsource值,但在运行时它不会在combobox中填充数据。这是C#和XAML代码 public MainWindow() { InitializeComponent(); datagrid_additionalinfo.Items.Add(new object()); datagrid_additionalinfo.DataContext = new ComboboxView

我创建了一个自定义DataGrid,其中定义了组合框列。我试图向combobox提供itemsource值,但在运行时它不会在combobox中填充数据。这是C#和XAML代码

public MainWindow()
{
    InitializeComponent();
    datagrid_additionalinfo.Items.Add(new object());

    datagrid_additionalinfo.DataContext = new ComboboxViewModel();
}

公共类ComboboxViewModel
{
公共列表成员{get;set;}
公共列表规则{get;set;}
公共ComboxViewModel()
{
this.Members=新列表
{
“阿里”、“穆巴沙尔”、“穆法瑟”、“尼廷”
};
this.trictions=新列表
{
“建筑”、“机械”、“结构”
};
}
}



如果我遗漏了什么,请纠正我。非常感谢。

DataGrid列应放置在“columns”标记内:

    <DataGrid ...>
        <DataGrid.Columns>
          <DataGridTemplateColumn Header="Discipline"   Width="100" >
            ...
          </DataGridTemplateColumn>
          <DataGridTemplateColumn Header="Members"  Width="100">
            ...
          </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
编辑:

如果喜欢使用DataContext,请创建包含所有项的ViewModel,例如:

public class MainViewModel
{
    public List<ComboboxViewModel> Items { get; set; }

    public MainViewModel()
    {
        Items = new List<ComboboxViewModel>() { new ComboboxViewModel()};
    }
}

感谢分享XAML代码。在这里粘贴代码时,我实际上错过了这一行。另外,我不能使用datagrid_additionalinfo.Items.Add(新ComboboxViewModel());密码因为我的datagrid包含供用户输入数据的文本框。这有点复杂。您是否有任何在xaml中绑定数据的解决方案?
    <DataGrid ...>
        <DataGrid.Columns>
          <DataGridTemplateColumn Header="Discipline"   Width="100" >
            ...
          </DataGridTemplateColumn>
          <DataGridTemplateColumn Header="Members"  Width="100">
            ...
          </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
    public MainWindow()
    {
        InitializeComponent();
        datagrid_additionalinfo.Items.Add(new ComboboxViewModel());            
    }
public class MainViewModel
{
    public List<ComboboxViewModel> Items { get; set; }

    public MainViewModel()
    {
        Items = new List<ComboboxViewModel>() { new ComboboxViewModel()};
    }
}
<DataGrid  Name="datagrid_additionalinfo" ItemsSource="{Binding Items}" ...>
public MainWindow()
{
    InitializeComponent();
    datagrid_additionalinfo.DataContext = new MainViewModel(); 
}