如何在后端添加WPF DataGridTemplateColumn.CellEditingTemplate ComboBox项目源

时间:2016-05-12 09:24:59

标签: wpf data-binding combobox wpfdatagrid

我想将DataTable返回数据添加到我的DataGridTemplateColumn.CellEditingTemplate组合框中,但是组合框是空的

我的xaml代码如下

 <DataGridTemplateColumn Header="Student">
   <DataGridTemplateColumn.CellEditingTemplate >
      <DataTemplate>
           <ComboBox ItemsSource="{Binding dtStudent}"    DisplayMemberPath="StudentName"/>
      </DataTemplate>
   </DataGridTemplateColumn.CellEditingTemplate>
 </DataGridTemplateColumn>

后端

dtStudent = new Function().Sel_Student(); //Function that return student detail

我尝试为组合框控件添加名称,但无法从后端访问。

我的绑定方法是错误的还是我有其他方法来实现我需要的

2 个答案:

答案 0 :(得分:1)

在DataTemplate中定义控件时,无法通过名称访问控件。您可以从其可视树中获取ComboBox。 请参阅此WPF How to access control from DataTemplate

答案 1 :(得分:0)

您需要绑定到属性而不是函数。所以在你的后端你应该

public IEnumerable<Student> Students
{
    get
    {
        return Sel_Students();
    }
}

private IEnumerable<Student> Sel_Students()
{
    return { ... your students};
}

public class Student {
}