【发布时间】:2015-07-30 19:39:47
【问题描述】:
我有一个绑定到 TeamMembers 的 Datagrid。在构造函数后面的代码中:
public SetupView(SetupViewModel model)
{
InitializeComponent();
DataContext = model;
this.model = model;
ResourceGrid.ItemsSource = model.teamMembers;
ResourceGrid.DataContext = model;
}
我的视图模型:
public class SetUpViewModel {
Tasks = new ObservableCollection<string>() { "A", "B", "C", "D" };
}
在我的 XAML 中,我的 ResourceGrid 是一个具有一个 ComboBoxColumn 的数据网格:
<DataGridComboBoxColumn Header="Task" Width="115" ItemsSource="{Binding
Tasks}" ">
绑定中的任务是指我在视图模型中声明的任务集合。但是,当我运行它时它不起作用。
但是,如果我这样做,我将组合添加到模板列,然后将组合框的项目源添加到加载组合的任务中,它可以工作:
<DataGridTemplateColumn Header="Task" Width="115">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Loaded="LoadATaskEventHandler"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
private void LoadATaskEventHandler(object sender, RoutedEventArgs e)
{
ComboBox comboBox = sender as ComboBox;
comboBox.ItemsSource=model.Tasks;
}
当datagrid 支持comobocolumn 时,我想将combobox 添加到模板中。请就此提出建议。
以及两者在性能上有什么区别,最好的解决方案是什么。
【问题讨论】: