【发布时间】:2014-10-14 17:56:52
【问题描述】:
我需要在 WPF 的 DataGrid 中显示带有复选框选项的组合框。请为此提供任何解决方案。
我试过下面的代码
<toolkit:DataGridTemplateColumn Header="Template">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox>
<ComboBoxItem BindingGroup="{Binding Program}">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsChecked}" Width="20" />
<TextBlock Text="{Binding Program}" Width="100" />
</StackPanel>
</ComboBoxItem>
</ComboBox>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>
会这样输出
请任何人帮助加载组合框中的项目集合并更正我的代码。
CS 代码:
private void resultGrid_Loaded(object sender, RoutedEventArgs e)
{
var programs = new List<Programs>();
programs.Add(new Programs("test", false));
programs.Add(new Programs("test1", false));
programs.Add(new Programs("test2", true));
//var grid = sender as DataGrid;
resultGrid.ItemsSource = programs;
Combo.ItemsSource = programs;
}
还有模特:
public class Programs
{
public Programs(string Program, bool IsChecked)
{
this.Program = Program;
this.IsChecked = IsChecked;
}
public string Program { get; set; }
public bool IsChecked { get; set; }
}
终于有了@Sheridan 提到的想法:
【问题讨论】:
-
为什么要在组合框内设置一个复选框?!你会有多个盒子吗?您是否尝试将其设置为上述情况下的选定项?
-
是的,我们在组合框中有多个复选框。例如,像 test,test1,test2 这样的程序需要在每个组合框中显示复选框。
-
将复选框作为 ComboboxItem。
-
desired 在 wpf 中确实是可能的,但是您的绑定显示单个数据值而不是组合框的集合。共享绑定到数据网格的数据类,让我们看看如何实现所需。
标签: c# .net wpf wpf-controls wpfdatagrid