当前位置: 首页 > news >正文

WPF TabControl页面绑定ItemsSource

TabControl的ItemsSource属性使用比较少。这里我使用ini配置文件,使用tabcontrol呈现。

每个Tabitem显示ini中一个节的信息,键值对使用表格显示。

xaml:

 <telerik:RadTabControl ItemsSource="{Binding Sections}" SelectedIndex="{Binding SelectSectionIndex}"><telerik:RadTabControl.ItemTemplate><DataTemplate><TextBlock Text="{Binding Name}" /></DataTemplate></telerik:RadTabControl.ItemTemplate><telerik:RadTabControl.ContentTemplate><DataTemplate><telerik:RadGridViewHorizontalContentAlignment="Center"VerticalContentAlignment="Center"AutoGenerateColumns="False"CanUserGroupColumns="False"CanUserReorderColumns="False"CanUserResizeColumns="True"CanUserSelect="True"CanUserSortColumns="False"CanUserSortGroups="False"EnableLostFocusSelectedState="False"FrozenColumnsSplitterVisibility="Collapsed"IsFilteringAllowed="False"IsHitTestVisible="True"IsReadOnly="False"IsTabStop="False"ItemsSource="{Binding KeyValues, NotifyOnSourceUpdated=True}"RowHeight="29"RowIndicatorVisibility="Collapsed"SelectionUnit="FullRow"ShowGroupPanel="False"ShowSearchPanel="False"><telerik:RadGridView.Columns><telerik:GridViewDataColumnWidth="*"DataMemberBinding="{Binding Key}"Header="键"IsReadOnly="True" /><telerik:GridViewDataColumnWidth="2*"DataMemberBinding="{Binding Value}"Header="值" /></telerik:RadGridView.Columns></telerik:RadGridView></DataTemplate></telerik:RadTabControl.ContentTemplate></telerik:RadTabControl>

VM:

private ObservableCollection<IniSection> _sections;
public ObservableCollection<IniSection> Sections
{get => _sections;set => this.RaiseAndSetIfChanged(ref _sections, value);
}
public class IniSection
{public string Name { get; set; }public ObservableCollection<IniKeyValue> KeyValues { get; set; } = new ObservableCollection<IniKeyValue>();
}
public class IniKeyValue
{public string Key { get; set; }public string Value { get; set; }
}

效果:

ini:

界面:

http://www.dtcms.com/a/351370.html

相关文章:

  • F006 vue+flask python 垃圾分类可视化系统+爬虫
  • 力扣(逆波兰表达式求值)
  • 英伟达 Spectrum-XGS:重构 AI 基础设施,开启跨域超级工厂时代
  • Day3--HOT100--42. 接雨水,3. 无重复字符的最长子串,438. 找到字符串中所有字母异位词
  • JHipster 生成器快速入门
  • 爬虫 API:从技术架构到实战落地的全维度解析
  • 功能强大的PDF工具箱-- PDF补丁丁,v1.1.0.4657新版本,免费无广告,开箱即用版~
  • HarmonyOS 中 @Observed 与 @ObjectLink:对象级别的响应式数据管理
  • 鸿蒙中使用极光推送
  • 阿里云docker搭建的mysql无法访问
  • 如何下载MySQL小白指南 (以 Windows 为例)
  • CNN 中 3×3 卷积核等设计背后的底层逻辑
  • 负载均衡之带权重的随机负载均衡算法详解与实现
  • 【LeetCode】动态规划——198.打家劫舍、213.打家劫舍||、337.打家劫舍|||
  • 开发避坑指南(37):Vue3 标签页实现攻略
  • 【Python系列】Flask 和 FastAPI对比
  • 高性价比的云手机该怎样进行选择?
  • GraphRAG——v0.3.5版本
  • 从MySQL到OpenTenBase:电商平台分布式数据库架构升级实战
  • TCP协议11种状态
  • 【人工智能AI、机器学习ML、深度学习DL、基础模型FM、LLM、GPT、Generative AI 分别是什么?他们之间的关系是什么?】
  • 一个头像图片滚动轮播组件(React实现)
  • vscode有的结构体不能补全,有的可以补全问题的解决.
  • 校园资讯平台|校园资讯平台系统|基于java和小程序的校园资讯平台设计与实现(源码+数据库+文档)
  • 《数据之心》——鱼小妖的觉醒(童年篇)
  • 【国密证书】CentOS 7 安装 GmSSL 并生成国密证书
  • SpringBoot启动优化
  • 肌肉力量训练
  • 【C语言练习】汉诺塔
  • 金融市场微观行为分析结合深度学习的大单过滤与短期价格预测框架