Files
Ramitta-lib/template/MainWindow.xaml.cs

146 lines
5.4 KiB
C#
Raw Normal View History

2025-08-30 21:14:02 +08:00
using Newtonsoft.Json.Linq;
using Ramitta;
using System.Data.Common;
2025-08-29 14:57:55 +08:00
using System.Diagnostics;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
2025-08-30 21:14:02 +08:00
using System.Xml.Linq;
using static Ramitta.lib.Basic;
using static Ramitta.winDataGrid;
2025-08-29 14:57:55 +08:00
namespace template
{
public partial class MainWindow : Window
{
static string? filePath;
private JToken? _currentJsonData = null;
private string? _currentFilePath = null;
#region MainWindow
public MainWindow(StartupEventArgs e)
{
Startupe = ParseCommandLineArgs(e.Args);
InitializeComponent();
if (Startupe.TryGetValue("getfile", out string filePath))
{
MainWindow.filePath = filePath;
DebugBar(Debugtag, $"操作目标:{filePath}", 绿);
}
else
{
DebugBar(Debugtag, $"未指定操作目标", );
}
2025-08-30 21:14:02 +08:00
2025-09-01 17:12:06 +08:00
xDataGrid.InitColumns(
("标题", ColumnType.Label),
("判断", ColumnType.CheckBox),
("康波", ColumnType.ComboBox)
);
(xDataGrid.AddRow()["标题"] as Label).Content = "1";
(xDataGrid.AddRow()["标题"] as Label).Content = "2";
(xDataGrid.AddRow()["标题"] as Label).Content = "3";
2025-08-30 21:14:02 +08:00
// 修改按钮文本
// 查找Content为"删除"的第一行
2025-09-01 17:12:06 +08:00
var targetRow = xDataGrid.Rows
.FirstOrDefault(row => (row["标题"] as Label)?.Content.ToString() == "2");
(targetRow["判断"] as CheckBox).IsChecked= true;
2025-08-30 21:14:02 +08:00
2025-08-29 14:57:55 +08:00
}
#endregion
2025-08-30 21:14:02 +08:00
2025-08-29 14:57:55 +08:00
private void (object sender, RoutedEventArgs e)
{
2025-08-30 21:14:02 +08:00
// 添加顶层节点
2025-08-29 14:57:55 +08:00
TreeList.AddCheckboxNode("A");
2025-08-30 21:14:02 +08:00
TreeList.AddCheckboxNode("B");
2025-08-29 14:57:55 +08:00
2025-08-30 21:14:02 +08:00
// 添加标签节点 "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"
2025-08-29 14:57:55 +08:00
}
private void (object sender, RoutedEventArgs e)
{
}
private void (object sender, RoutedEventArgs e)
{
2025-09-01 17:12:06 +08:00
xDataGrid.Rows.Clear();
2025-08-29 14:57:55 +08:00
}
private void (object sender, RoutedEventArgs e)
{
2025-08-30 21:14:02 +08:00
var sukablayt = TreeList.FindArgvNode(null, ["GroupF"]);
foreach (var arg in sukablayt.Children) {
var suka = arg as CheckboxTreeNode;
Debug.WriteLine($"{arg.Text}:{suka.IsChecked}");
}
2025-08-29 14:57:55 +08:00
2025-08-30 21:14:02 +08:00
if (sukablayt == null)DebugBar(Debugtag, $"没找到", );
2025-08-29 14:57:55 +08:00
}
}
}