WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据
原文:WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据
功能阐述
就上面那图片
刚开始 考虑使用 RowHeaderTemplate 来实现 发现总绑定不上数据 上官网查了一下
不支持上下文绑定 fffffffffffff
只能考虑样式了 经验不足 经验不足~
直接上前后台源码了
XAML
-
<Window
-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-
xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" x:Class="WpfApplication31.MainWindow"
-
Title="MainWindow" Height="350" Width="525">
-
<Window.Resources>
-
-
<Style x:Key="DataGridRowHeaderStyle1" TargetType="{x:Type DataGridRowHeader}">
-
<Setter Property="Template">
-
<Setter.Value>
-
<ControlTemplate TargetType="{x:Type DataGridRowHeader}">
-
<Grid Height="59.834" Width="207.908">
-
<Grid.ColumnDefinitions>
-
<ColumnDefinition Width="20*"/>
-
<ColumnDefinition Width="21*"/>
-
<ColumnDefinition Width="77*"/>
-
</Grid.ColumnDefinitions>
-
<Grid Grid.Column="2" HorizontalAlignment="Stretch" Height="Auto" Margin="0" VerticalAlignment="Stretch">
-
<Grid.RowDefinitions>
-
<RowDefinition/>
-
<RowDefinition/>
-
</Grid.RowDefinitions>
-
<Grid HorizontalAlignment="Stretch" Height="Auto" Margin="0" Grid.Row="1" VerticalAlignment="Stretch">
-
<Grid.ColumnDefinitions>
-
<ColumnDefinition/>
-
<ColumnDefinition/>
-
</Grid.ColumnDefinitions>
-
<Border BorderBrush="#FFBFBFBF" BorderThickness="0,0,1,1" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Height="Auto" VerticalAlignment="Stretch" Width="Auto" Background="White" Grid.Column="0" Margin="0">
-
<Label Content="リーダー" HorizontalAlignment="Center" Height="Auto" Background="White" VerticalAlignment="Center" Margin="0"/>
-
</Border>
-
<Border BorderBrush="#FFBFBFBF" BorderThickness="0,0,1,1" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Height="Auto" VerticalAlignment="Stretch" Width="Auto" Background="White" Grid.Column="1">
-
<Label Content="" HorizontalAlignment="Center" Height="Auto" Background="White" VerticalAlignment="Center" Margin="0"/>
-
</Border>
-
</Grid>
-
<Border BorderBrush="#FFBFBFBF" BorderThickness="0,1,1,1" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Height="Auto" VerticalAlignment="Stretch" Width="Auto" Background="White" Grid.Column="0" Margin="0">
-
<Label Content="{Binding Name}" HorizontalAlignment="Center" Height="Auto" Background="White" VerticalAlignment="Center" Margin="0"/>
-
</Border>
-
</Grid>
-
<Border BorderBrush="#FFBFBFBF" BorderThickness="1" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Height="Auto" Margin="0" VerticalAlignment="Stretch" Width="Auto" Background="White">
-
<Label Content="{Binding Num}" HorizontalAlignment="Center" Height="Auto" Background="White" VerticalAlignment="Center" Margin="0"/>
-
</Border>
-
<Border BorderBrush="#FFBFBFBF" BorderThickness="0,1,1,1" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Height="Auto" VerticalAlignment="Stretch" Width="Auto" Background="White" Grid.Column="1">
-
<Label Content="{Binding Class_}" HorizontalAlignment="Center" Height="Auto" Background="White" VerticalAlignment="Center" Margin="0"/>
-
</Border>
-
</Grid>
-
</ControlTemplate>
-
</Setter.Value>
-
</Setter>
-
</Style>
-
-
</Window.Resources>
-
<Grid>
-
<DataGrid x:Name="dataGrid" CanUserAddRows = "false" AutoGenerateColumns="False" Margin="10,10,0,0" RowHeaderStyle="{DynamicResource DataGridRowHeaderStyle1}" >
-
<DataGrid.Columns>
-
<DataGridTextColumn Header="姓名" Binding="{Binding Name}"/>
-
<DataGridTextColumn Header="年龄" Binding="{Binding Class_}"/>
-
</DataGrid.Columns>
-
-
</DataGrid>
-
-
</Grid>
-
</Window>
后台代码
-
using System;
-
using System.Collections.Generic;
-
using System.Collections.ObjectModel;
-
using System.ComponentModel;
-
using System.Data;
-
using System.Linq;
-
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;
-
-
namespace WpfApplication31
-
{
-
/// <summary>
-
/// MainWindow.xaml 的交互逻辑
-
/// </summary>
-
public partial class MainWindow : Window
-
{
-
public MainWindow()
-
{
-
InitializeComponent();
-
dataGrid.ItemsSource = GetNameData();
-
}
-
ObservableCollection<NameList> listName = new ObservableCollection<NameList>();
-
private ObservableCollection<NameList> GetNameData()
-
{
-
-
-
listName.Add(new NameList("市川 賞子", "リーダー", "B", 1));
-
listName.Add(new NameList("石田", "リーダー", "C", 2));
-
listName.Add(new NameList("安达 鮎美", "リーダー", "C", 3));
-
-
return listName;
-
-
}
-
-
}
-
public class NameList : INotifyPropertyChanged
-
{
-
public event PropertyChangedEventHandler PropertyChanged;
-
-
-
public NameList(string name, string jOb, string class_, int num) { Name = name; Class_ = class_; JOb = jOb; Num = num; }
-
private string name;
-
-
public string Name
-
{
-
get { return name; }
-
set
-
{
-
name = value;
-
if (PropertyChanged != null)
-
{
-
PropertyChanged(this, new PropertyChangedEventArgs("Name"));
-
}
-
-
}
-
}
-
private int num;
-
-
public int Num
-
{
-
get { return num; }
-
set
-
{
-
num = value;
-
if (PropertyChanged != null)
-
{
-
PropertyChanged(this, new PropertyChangedEventArgs("Num"));
-
}
-
}
-
}
-
private string class_;
-
-
public string Class_
-
{
-
get { return class_; }
-
set
-
{
-
class_ = value;
-
if (PropertyChanged != null)
-
{
-
PropertyChanged(this, new PropertyChangedEventArgs("Class_"));
-
}
-
}
-
}
-
-
-
-
private string jOb;
-
-
public string JOb
-
{
-
get { return jOb; }
-
set
-
{
-
jOb = value;
-
if (PropertyChanged != null)
-
{
-
PropertyChanged(this, new PropertyChangedEventArgs("JOb"));
-
}
-
}
-
}
-
-
-
}
-
-
}
WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据的更多相关文章
- WPF DataGrid row background converter datagrid 行背景随绑定数据变化,转换器
<DataGrid Grid.Row=" ItemsSource="{Binding SalesList,UpdateSourceTrigger=PropertyChange ...
- WPF (DataGridColumnHeader)实现自义定列头样式 并绑定数据
原文:WPF (DataGridColumnHeader)实现自义定列头样式 并绑定数据 实现功能是这样的 自定义列头 样式 样式里的 数据来源于后台绑定 这篇就说头样式 和头样式数据绑定 思路 1) ...
- WPF ListView点击删除某一行并获取绑定数据
最近在开发WPF程序时遇到一个问题,在gridview中希望实现在每一行最后添加一个删除的按钮,但是发现点击每行的button时只会触发button的点击事件,并没有选中这一行,此时调用list.Se ...
- WPF Datagrid 动态生成列 并绑定数据
原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用 可 ...
- WPF 4 DataGrid 控件(自定义样式篇)
原文:WPF 4 DataGrid 控件(自定义样式篇) 在<WPF 4 DataGrid 控件(基本功能篇)>中我们已经学习了DataGrid 的基本功能及使用方法.本篇将继续 ...
- 打造自定Select样式
打造自定Select样式 我们为什么要自定义select样式? 1.select最大的一个缺陷就是不能自定义下拉按钮的样式. 效果图: 在线演示地址: http://www.smallui.com/j ...
- WPF后台设置xaml控件的样式System.Windows.Style
WPF后台设置xaml控件的样式System.Windows.Style 摘-自 :感谢 作者: IT小兵 http://3w.suchso.com/projecteac-tual/wpf-zhi ...
- C# DevExpress_gridControl 行号行样式
#region 行号 /// <summary> /// 行号 /// </summary> /// <param name="sender"> ...
- WPF界面设计技巧(10)-样式的继承
原文:WPF界面设计技巧(10)-样式的继承 PS:现在我的MailMail完工了,进入内测阶段了,终于可以腾出手来写写教程了哈,关于MailMail的介绍及内测程序索取:http://www.cnb ...
随机推荐
- Hive DDL、DML操作
• 一.DDL操作(数据定义语言)包括:Create.Alter.Show.Drop等. • create database- 创建新数据库 • alter database - 修改数据库 • dr ...
- 44.QT-安装MySQL、测试连接MySQL
在上章学习了42.QT-操作SQLite数据库后,发现MySQL和SQLite的语句都大致相同,所以本章只测试MySQL是否能使用 MySQL安装参考链接:https://blog.csdn.net/ ...
- Windows7安装PowerShell5.1方法(Flutter新版本需要)
Windows7安装PowerShell5.1方法(Flutter新版本需要) 重新安装Windows7系统,在使用Flutter的时候,发现需要PowerShell5.0以上版本,需要升级Win ...
- 一个diango项目的结构
一个项目的结构 day43项目 .idea 配置 pycharm自动帮配的配置,打开别人的diango项目时要先删了此项 app01 方便在一个大的Django项目中,管理实现不同的业务功能 migr ...
- 安装CentOS 6.x报错"Disk sda contains BIOS RAID metadata"解决方法
今天在安装CentOS 6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of a ...
- 以太网驱动的流程浅析(四)-以太网驱动probe流程【原创】
以太网驱动的流程浅析(四)-以太网驱动probe流程 Author:张昺华 Email:920052390@qq.com Time:2019年3月23日星期六 此文也在我的个人公众号以及<Lin ...
- gunicorn Python部署应用
对于flask应用 启动命令为 python app.py 使用gunicorn启动 pip install gunicorn python gunicorn --workers=7 switch_a ...
- 斐波那契数列(Java)
一.什么是斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为& ...
- Python网络爬虫_Scrapy框架_2.logging模块的使用
logging模块提供日志服务 在scrapy框架中已经对其进行一些操作所以使用更为简单 在Scrapy框架中使用: 1.在setting.py文件中设置LOG_LEVEL(设置日志等级,只有高于等于 ...
- python的@propert装饰器
首先,@propert的作用是把类中的方法『变成』了属性,方便通过实例访问.propert可以有两种用法:可以把一个方法变成只读属性:可以对一些属性进行过滤. 想象这样一个场景,在实例化一个类之后,需 ...