public class Column<T> {
public Column(string txt, Func<T, string> data, int minWidth = 50, int maxWidth = 80) { }
public Column(string txt, params Element[] element) { }
}
public class Table<T> : Element {
public Table(params Column<T>[] columns) { }
}
public class TestModel {
public string Name;
public string Address;
}
public class TestClass {
TestClass() {
var table = new Table<TestModel>(
new("姓名", x => x.Name),
new("地址", x => x.Address),
new("地址", x => x.Address),
new("地址", x => x.Address),
new("地址", x => x.Address),
new("地址", x => x.Address),
new("地址", x => x.Address),
new("操作", new xButton<TestModel>("编辑", x => {
}), new xButton<TestModel>("删除", x => {
}), new xDownList<TestModel>("选择", x => {
}))
);
}
}
public class xButton<T> : Element {
public xButton(string txt, Action<T> action) {
}
}
public class xDownList<T> : Element {
public xDownList(string txt, Action<T> action) {
}
}
public interface Element {
}