准备把表格实现改激进

This commit is contained in:
2025-08-30 21:14:02 +08:00
parent 624125ec7b
commit 6ccc323bb2
1506 changed files with 13159 additions and 374 deletions

View File

@@ -1,7 +1,6 @@
using Ramitta;
using static Ramitta.lib.Basic;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Linq;
using Ramitta;
using System.Data.Common;
using System.Diagnostics;
using System.Text;
using System.Windows;
@@ -14,6 +13,9 @@ using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using System.Xml.Linq;
using static Ramitta.lib.Basic;
using static Ramitta.winDataGrid;
namespace template
{
@@ -32,29 +34,111 @@ namespace template
{
MainWindow.filePath = filePath;
DebugBar(Debugtag, $"操作目标:{filePath}", 绿);
}
else
{
DebugBar(Debugtag, $"未指定操作目标", );
}
xDataGrid.AddColumn("标题", ColumnType.Label);
xDataGrid.AddColumn("判断", ColumnType.CheckBox);
xDataGrid.AddColumn("康波", ColumnType.ComboBox);
xDataGrid.Rows.Add(
new Dictionary<string, Dictionary<string, object>?> {
{
"标题", new Dictionary<string, object> {
{ "Content", "你妈妈" }
}
},
{
"判断", new Dictionary<string, object> {
{ "IsChecked", true }
}
},
{
"康波", new Dictionary<string, object> {
{ "ItemsSource", new List<string>{"你妈","日你"} },
{ "SelectedValue","日你"}
}
}
});
xDataGrid.AddRow()["标题"]["Content"] = "2";
xDataGrid.AddRow()["标题"]["Content"] = "3";
// 修改按钮文本
// 查找Content为"删除"的第一行
/*
var targetRow = xDataGrid.Rows.FirstOrDefault(row =>
row.ContainsKey("Content") && row["Content"]?.ToString() == "他妈");
if (targetRow != null)
{
targetRow["IsChecked"] = true;
targetRow["SelectedValue"] = "新值";
}
*/
}
#endregion
private void (object sender, RoutedEventArgs e)
{
var stable = TreeList.AddLabelNode("GROUP");
// 添加顶层节点
TreeList.AddCheckboxNode("A");
TreeList.AddCheckboxNode("B", parent: stable);
TreeList.AddCheckboxNode("C");
TreeList.AddCheckboxNode("B");
_ = Dispatcher.BeginInvoke(new Action(() =>
{
TreeList.Find<CheckboxTreeNode, CheckBox>(null, "A");
TreeList.Find<CheckboxTreeNode, CheckBox>(null, "B");
TreeList.Find<CheckboxTreeNode, CheckBox>(null, "C");
}), DispatcherPriority.Loaded);
// 添加标签节点 "GroupC",并嵌套子节点 "D" 和 "E"
var groupC = TreeList.AddLabelNode("GroupC");
TreeList.AddCheckboxNode("D", parent: groupC); // GroupC 下的 "D"
TreeList.AddCheckboxNode("E", parent: groupC); // GroupC 下的 "E"
// 添加标签节点 "GroupF",并嵌套子节点 "G" 和 "H"
var groupF = TreeList.AddLabelNode("GroupF");
TreeList.AddCheckboxNode("G", parent: groupF); // GroupF 下的 "G"
var groupH = TreeList.AddCheckboxNode("H", parent: groupF); // GroupF 下的 "H"
// 在 "H" 下添加节点 "I" 和 "J"
TreeList.AddCheckboxNode("I", parent: groupH); // "H" 下的 "I"
TreeList.AddCheckboxNode("J", parent: groupH); // "H" 下的 "J"
// 添加多个类型为 "K" 的节点(分别加入不同层级)
TreeList.AddCheckboxNode("K", "1"); // 顶层 "K" 节点
TreeList.AddLabelNode("K", parent: groupH); // "H" 下的 "K" 节点
TreeList.AddCheckboxNode("K", "3", parent: groupF); // "GroupF" 下的 "K" 节点
TreeList.AddCheckboxNode("K", "4", parent: groupC); // "GroupC" 下的 "K" 节点
// 添加更多重复节点
TreeList.AddCheckboxNode("A"); // 顶层重复 "A" 节点
TreeList.AddCheckboxNode("B"); // 顶层重复 "B" 节点
// 再次在 GroupC 下添加重复节点 "D" 和 "E"
TreeList.AddCheckboxNode("D", parent: groupC); // GroupC 下重复 "D"
TreeList.AddCheckboxNode("E", parent: groupC); // GroupC 下重复 "E"
// 再次在 GroupF 下添加重复节点 "G"
TreeList.AddCheckboxNode("G", parent: groupF); // GroupF 下重复 "G"
// 在 "H" 下添加重复节点 "I" 和 "J"
TreeList.AddCheckboxNode("I", parent: groupH); // "H" 下重复 "I"
TreeList.AddCheckboxNode("J", parent: groupH); // "H" 下重复 "J"
// 为了形成至少5层的嵌套再加一个新的标签节点 "GroupG",并添加节点
var groupG = TreeList.AddLabelNode("GroupG");
TreeList.AddCheckboxNode("L", parent: groupG); // GroupG 下的 "L"
TreeList.AddCheckboxNode("M", parent: groupG); // GroupG 下的 "M"
// 继续在 GroupG 下添加节点 "N"
TreeList.AddCheckboxNode("N", parent: groupG); // GroupG 下的 "N"
// 再添加 GroupG 下的 "O" 和 "P"
TreeList.AddCheckboxNode("O", parent: groupG); // GroupG 下的 "O"
TreeList.AddCheckboxNode("P", parent: groupG); // GroupG 下的 "P"
}
private void (object sender, RoutedEventArgs e)
@@ -69,17 +153,15 @@ namespace template
private void (object sender, RoutedEventArgs e)
{
List<TreeNode> val = TreeList.FindAllTreeNodes(TreeList.Nodes, "A", typeof(LabelTreeNode));
if (val.Count > 0)
{
DebugBar(Debugtag, $"{val.Count} 信息: {val[0].Text}", );
}
else
{
DebugBar(Debugtag, "没有找到任何相关信息", 绿);
var sukablayt = TreeList.FindArgvNode(null, ["GroupF"]);
foreach (var arg in sukablayt.Children) {
var suka = arg as CheckboxTreeNode;
Debug.WriteLine($"{arg.Text}:{suka.IsChecked}");
}
if (sukablayt == null)DebugBar(Debugtag, $"没找到", );
}
}
}