历经了半个月的时间,终于做出了一个可以实现如题功能的自定义DataGrid控件(也就是个UserControl)。不过由于这个控件有点依赖与我们项目中的其他东西,所以我把之前做的一个类天拿出来和大家分享一下,这个类是那个控件的核心,控件也就是在这个类的基础上包了层XAML代码,加了些我们项目中特有的东西而已。我觉得这个东西对于我这毕业还不到一年的菜鸟来说还是有一些难度的。
下面贴出代码,我觉得我在代码里面写的注释挺详细,文章中就不再多说了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Data;
using System.Xml;
using System.Windows.Controls;
using System.Windows;
namespace TincyhoHelper
{
/// <summary>
/// 声明全局变量,一个string型,作为文件名,一个DataGrid型,即指定的DataGrid
/// 实例化时将指定的DataGrid和文件名作为参数传入该类。
/// 载入页面时,先加载右键菜单。再从XML文件读取配置信息,这里必须加System.IO.File.Exist()条件判断文件是否存在
/// 关闭页面时将配置信息写入XML文件
/// </summary>
public class ColumnHelper
{
string filename;
XmlDocument xmlDoc = new XmlDocument();
DataGrid dgPerson;
/// <summary>
/// 用指定的DataGrid和文件名初始化ColumnHelper类的新实例
/// </summary>
/// <param name="dgPerson"></param>
public ColumnHelper(DataGrid dgPerson, string filename)
{
// TODO: Complete member initialization
this.dgPerson = dgPerson;
this.filename = filename;
}
/// <summary>
/// 添加右键菜单中的CheckBox
/// </summary>
/// <param name="content">CheckBox显示的名字</param>
/// <param name="source">绑定的列名</param>
public void addCheckbox()