WPF datagrid设计一个表格 在勾选一个参数时就会生成一列 勾选多个就生成多列

MasterZM MasterZM 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人自己在看WPF遇到难题,希望有大神可以帮帮忙!
前端:
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top">

<CheckBox x:Name="idCheckBox" Content="ID" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
<CheckBox x:Name="nameCheckBox" Content="Name" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
<CheckBox x:Name="ismaleCheckBox" Content="IsMale" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
<CheckBox x:Name="typeCheckBox" Content="Type" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
<CheckBox x:Name="siteidCheckBox" Content="SiteID" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
<CheckBox x:Name="birthdateCheckBox" Content="BirthDate" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
<Button x:Name="CheckBox" Content="Search" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Click="SearchBtn_OnClick"/>
</StackPanel>
<DataGrid x:Name="gridProfucts" AutoGenerateColumns="True" AutoGeneratingColumn="GridProfucts_OnAutoGeneratingColumn">
</DataGrid>
</DockPanel>

后台:
public partial class MainWindow : Window
{
ObservableCollection<Employee> employees = new ObservableCollection<Employee>();

public MainWindow()
{
InitializeComponent();

//数据源
employees.Add(new Employee {
ID = 1,
Name = "Kapil Malhotra",
IsMale = true,
Type = EmployeeType.Normal,
SiteID = new Uri("http://localhost/4322"),
BirthDate = new DateTime(1980, 1, 1)
});
employees.Add(new Employee {
ID = 2,
Name = "George",
IsMale = true,
Type = EmployeeType.Manager,
SiteID = new Uri("http://localhost/4432"),
BirthDate = new DateTime(1980, 2, 1)
});
employees.Add(new Employee {
ID = 3,
Name = "Vicky",
IsMale = false,
Type = EmployeeType.Supervisor,
SiteID = new Uri("http://localhost/4872"),
BirthDate = new DateTime(1980, 3, 1)
});
}
private void SearchBtn_OnClick(object sender, RoutedEventArgs e) //设置 AutoGenerateColumns="False"的一种方法
{
gridProfucts.ItemsSource = null;
gridProfucts.ItemsSource = employees;
//if (idCheckBox.IsChecked == true) {
// var newColumn = new DataGridTextColumn();
// newColumn.Binding = new Binding(nameof(Employee.ID));
// newColumn.Header = nameof(Employee.ID);
// gridProfucts.Columns.Add(newColumn);
//}
}
private void GridProfucts_OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
e.Cancel = true;
if (e.Column.Header.ToString() == nameof(Employee.ID)) {
if (idCheckBox.IsChecked == true) {
e.Cancel = false;
}
}
}

public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
public bool IsMale { get; set; }
public EmployeeType Type { get; set; }
public Uri SiteID { get; set; }
public DateTime BirthDate { get; set; }
}
public enum EmployeeType
{
Normal,
Supervisor,
Manager
}
}
运行后不勾选,查不到任何东西,不生成任何列。勾选ID这个属性后,查看,自动生成一列为ID然后展示其数据!


现在的问题就是,我想写出勾选任何一个属性都会只生成一个属性列;和我选择两个或多个属性时,他也只会生成两个或者多个列。(比如我勾选了ID和Name两个属性只会生成ID和Name两列)

拜托各位大神,如果您懂这方面的东西,请您帮帮我忙,谢谢!谢谢!
...全文

相关推荐

wpf实现DataGrid列表控件实现树形结构,并且展开控件ToggleButton可以放在任意一列,也可以冻住多列不可拖动

首先,我们需要了解WPF中的DataGrid控件。DataGrid是用于显示和编辑表格数据的控件,它提供了丰富的功能,如排序、分页、选择、编辑等。然而,DataGrid默认并不支持树形结构。

yiyifeng_1987

Xceed DataGrid万能单元格编辑器:双击编辑的MVVM实现与动态列方案

在WPF桌面开发中,DataGrid的单元格编辑体验长期困扰着上位机与工控界面的开发者——原生控件仅支持F2或单击进入编辑,且默认调用TextBox,面对枚举、布尔、日期等类型时无法自动匹配对应编辑器。Xceed.Wpf.DataGrid通过单元格编辑状态机与DefaultCellEditors扩展机制,将显示、编辑、提交彻底解耦,从根本上解决了多类型编辑与动态列构建的难题。其CellEditor基于数据类型自动匹配编辑器,配合包装ViewModel可收敛为单一编辑入口,在MVVM模式下实现运行时动态生成S

Ready-Player

wpf中DataGrid数据双向绑定

在WPF(Windows Presentation Foundation)中,DataGrid控件是一个非常强大的工具,用于展示和编辑表格数据。

m1f2c3

WPF DataGrid合并单元格(模板列嵌套DataGrid)

首先,我们要明白,WPF DataGrid自身并不支持直接的单元格合并。但是,我们可以通过一些技巧来模拟这个效果。例如,我们可以创建一个带有共享边界的多个单元格,使它们看起来像一个合并的单元格。

51Crack

wpf通过datagrid操作数据库,实现datagrid增删改操作。

DataGrid是WPF中的一个强大控件,它允许用户以表格的形式展示和编辑数据,非常适合用于数据密集型应用程序。首先,我们需要了解WPF的基本架构。

redcar98
评论 9
收藏 已收藏
分享
返回顶部
MasterZM
图表区 4,818 成员 14,133 内容