WPF TabControl 数据绑定
WPF TabControl in Binding’s world
首先,TabControl是间接继承自ItemControl的控件,因此可以像ItemControl那样自如的使用。
自此,我们知道了ItemControl的派生控件有:
ItemControl–>Selector–>ListBox
ItemControl–>Selector–>ListBox–>ListView
ItemControl–>Selector–>ComboBox
ItemControl–>Selector–>TabControl
TabControl与ItemControl主要区别多了一个公共显示区域ContentTemplate,该区域可以显示当前选择项的一些特殊信息,因此,我们可以按照如下的形式进行开发。
简单版数据绑定使用
定义数据模型与数据绑定
MainWindow.xaml.cs
/** function: TabControl in DataBinding's world* description: Using TabControl to Binding * author: Mei Liyong*/using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;namespace Deamon
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DataContext = new MainWindowModel();}}/// <summary>/// Main window model/// </summary>public class MainWindowModel:NotifyPropertyChanged{private ObservableCollection<DeviceModel> devices;public ObservableCollection<DeviceModel> Devices{get { return devices; }set { devices = value; }}public MainWindowModel(){Devices = new ObservableCollection<DeviceModel>();for (int i = 0; i < 5; i++){Devices.Add(new DeviceModel() { Id = i + 1, Name = "设备" + (i + 1).ToString() });}}}/// <summary>/// Device data model/// </summary>public class DeviceModel: NotifyPropertyChanged{private int id;public int Id{get { return id; }set { id = value; OnPropertyChanged(); }}private string name;public string Name{get { return name; }set { name = value; OnPropertyChanged(); }}}/// <summary>/// Notifies clients that a property value has changed./// </summary>public class NotifyPropertyChanged : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;protected void RaisePropertyChanged(string PropertyName){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));}protected void OnPropertyChanged([CallerMemberName] string PropertyName = null){RaisePropertyChanged(PropertyName);}}
}
完成数据绑定
MainWindow.xaml
<Window x:Class="Deamon.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Deamon"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><TabControl ItemsSource="{Binding Devices}"><TabControl.ItemTemplate><DataTemplate><ContentPresenter Content="{Binding Name}"/></DataTemplate></TabControl.ItemTemplate><TabControl.ContentTemplate><DataTemplate><Grid><DockPanel><StackPanel><WrapPanel><TextBlock Text="编号:"/><TextBlock Text="{Binding Id}"/></WrapPanel><WrapPanel><TextBlock Text="名称:"/><TextBlock Text="{Binding Name}"/></WrapPanel></StackPanel><Polyline Points="15,16 95,110 154,300 125,10 541,95 15,16" Fill="#659BBC12" Stroke="#95100241" StrokeThickness="1"/></DockPanel></Grid></DataTemplate></TabControl.ContentTemplate></TabControl></Grid>
</Window>
控件样式设计跳转到我上一篇博客
积跬步以至千里:) (:一阵没来由的风
WPF TabControl 数据绑定相关推荐
- C# WPF TabControl控件用法详解
概述 TabControl我之前有讲过一节,内容详见:C# WPF TabControl用法指南(精品),上节主要讲解了tabcontrol控件的左右翻页,以及页面筛选,以及数据绑定等内容,这节内容继 ...
- WPF TabControl Unload俩次的解决方案
原文:WPF TabControl Unload俩次的解决方案 WPF中,有些控件会多次触发Unload,有点莫名其妙~ Unload的多次触发 TabControl的内容,我是这么设置的: 在Tab ...
- WPF TabControl 美化
转载来源:http://www.cnblogs.com/xling/p/3595602.html WPF TabControl 美化 文章很详细的说明了怎么做的美化 只是在学习过程中没有代码下载让人 ...
- WPF TabControl控件示例
WPF TabControl控件示例 运行效果: 主窗体XAML代码: <Window x:Class="WPF0417.MainWindow"xmlns="htt ...
- html tabcontrol模板,WPF TabControl模板+ ItemContainerStyle
我正在尝试创建一个基本上看起来像中心顶部的按钮和下面显示tabitem内容的内容面板上的按钮控制样式.WPF TabControl模板+ ItemContainerStyle 我对模板有点新,但到目前 ...
- WPF TabControl Styles
WPF TabControl Styles 水平使用的TabControl 效果: 样式资源 <!-- 顶部TabControl控件样式 --><SolidColorBrush x: ...
- 学习WPF: 创建数据绑定目录树
如果使用了WPF而不使用数据绑定(手工在界面和数据间进行同步),总会感觉不值.但是大部分讨论WPF数据绑定的文章,主题大多集中在ListBox这样平坦的数据集合上,讲如何绑定层次结构数据的比较少,这里 ...
- WPF TabControl 隐藏标头
1. 将每个 TabItem 的 Visibility 属性设置为 Visibility.Collapsed 即可隐藏标头 <TabItem Visibility="Collapsed ...
- WPF ListView 数据绑定后,ListViewItem如何拥有ContextMenu
这个需要重写ListView的Style. 首先在ListView的Style对应位置增加一个ContextMenu的声明: <!--ListViewItem的菜单绑定--><Con ...
最新文章
- oracle 分区使用情况,Oracle Hash分区的使用总结
- redis 基本信息查询
- Luogu 2827 [NOIP2016] 蚯蚓
- Java心得--键值、枚举器
- was连接oracle rac集群,Oracle集群(RAC)及 jdbc 联接双机数据库
- if (argc == 1) 到底有什么作用?
- scikit-image安装 from numpy.lib.arraypad import _validate_lengths ImportError: cannot import name ‘_va
- mysql+导出当前配置,mysql 查看当前使用的配置文件my.cnf的方法
- Android 系统(202)---Android:这是一份全面 amp; 详细的Webview使用攻略
- 小红书CTO山丘:用户隐私保护是数据应用的第一前提
- avs3 ts格式封装 标准_第480期【软件】吊打格式工厂—高清视频转换器WonderFox HD Video便携版...
- SAP BPC最佳实践-BPC安装及配置的常见问题
- 【渝粤题库】陕西师范大学500017 基础物理专题(光、近代)作业
- mysql CMD命令
- 鸿蒙系统首发仪式,鸿蒙系统首发终端荣耀智慧屏正式亮相
- css中 background:0 0;
- C语言汉诺塔问题的递归算法
- 非满管电磁流量计测量平均流速
- 吴恩达机器学习18-应用实例:图片文字识别
- layui 数字步进器_vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用