最近,在WPF方面的UI设计,设计很多控件的绑定和布局,因为刚开始学习,所以,有很多东西不是很懂,一边在网上搜,一边试着做,因为设计到在GridView中绑定控件,所有,在网上搜了搜,看了一篇很好的帖子,自己学着做了做,现在就总结一个WPF中如何在GridView中列中绑定其他的控件。为了增加效果,在WPF项目中用到了一个第三方的控件telerik,后面附加上相关的dll引用,在WPF项目中自己添加到自己的项目中就可以使用了。

首先,贴出我绑定后的GirdView的效果图:

由于采用了telerik:StyleManager.Theme="Windows7"风格,所有可能看起来不是很像GridView,下面就给出xaml代码:

  <telerik:RadGridView  ShowGroupPanel="False" AutoGenerateColumns="False"
x:Name="grd1" ItemsSource="{Binding Path=LstData, Mode=TwoWay}" SelectionMode="Extended" RowHeight="50"     telerik:StyleManager.Theme="Windows7"><telerik:RadGridView.Columns><telerik:GridViewSelectColumn  /><telerik:GridViewColumn Header="层次"><telerik:GridViewColumn.CellTemplate><DataTemplate><TextBlock x:Name="txtName" Text="{Binding Level,Mode=TwoWay}"
VerticalAlignment="Center" Height="22"></TextBlock></DataTemplate></telerik:GridViewColumn.CellTemplate></telerik:GridViewColumn><telerik:GridViewColumn Header="厚度" Width="80"><telerik:GridViewColumn.CellTemplate><DataTemplate><TextBox x:Name="txtAge"
VerticalAlignment="Center" Height="22"></TextBox></DataTemplate></telerik:GridViewColumn.CellTemplate></telerik:GridViewColumn><telerik:GridViewColumn Header="颜色" Width="120"><telerik:GridViewColumn.CellTemplate><DataTemplate><StackPanel Orientation="Horizontal"><telerik:RadComboBox Margin="5,0,0,0"
Width="60" Height="20"   ItemsSource="{Binding BaseColor}" VerticalAlignment="Center" x:Name="btnSub"></telerik:RadComboBox><telerik:RadColorPicker></telerik:RadColorPicker></StackPanel></DataTemplate></telerik:GridViewColumn.CellTemplate></telerik:GridViewColumn><telerik:GridViewColumn Header="结构" Width="95"><telerik:GridViewColumn.CellTemplate><DataTemplate><StackPanel Orientation="Horizontal"><telerik:RadComboBox Margin="5,0,0,0"
Width="60" Height="20"   ItemsSource="{Binding Structure}" VerticalAlignment="Center" x:Name="btnSub"></telerik:RadComboBox></StackPanel></DataTemplate></telerik:GridViewColumn.CellTemplate></telerik:GridViewColumn></telerik:RadGridView.Columns></telerik:RadGridView>

  上面要添加telerik的引用 :xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"

这样,就可以在GridView的每一个列上加上想要的控件了,下面是后台的代码,由于是第一个版本,所有代码很多都没有完善,但是,基本的界面显示功能已经可以实现:

 private string[] _StructureData = { "致密", "较致密", "疏松", "较疏松", "性脆易碎", "其他" };private string[] _BaseColorData = { "亮黑色", "褐黑色", "黑色", "褐色", "其他" };LevelCollection pc = new LevelCollection();public CobaltRichCrustUIGroupBoxLevel(){InitializeComponent();}private void UserControl_Loaded(object sender, RoutedEventArgs e){pc.LstData.Add(new LevelInfo() { Level = "I", Structure = _StructureData.ToList(), BaseColor = _BaseColorData.ToList() });pc.LstData.Add(new LevelInfo() { Level = "II", Structure = _StructureData.ToList(), BaseColor = _BaseColorData.ToList() });pc.LstData.Add(new LevelInfo() { Level = "III", Structure = _StructureData.ToList(), BaseColor = _BaseColorData.ToList() });pc.LstData.Add(new LevelInfo() { Level = "IV", Structure = _StructureData.ToList(), BaseColor = _BaseColorData.ToList() });pc.LstData.Add(new LevelInfo() { Level = "V", Structure = _StructureData.ToList(), BaseColor = _BaseColorData.ToList() });pc.LstData.Add(new LevelInfo() { Level = "VI", Structure = _StructureData.ToList(), BaseColor = _BaseColorData.ToList() });this.DataContext = pc;}private void btnAdd_Click(object sender, RoutedEventArgs e){}private void btnSub_Click(object sender, RoutedEventArgs e){}}public class LevelCollection{private ObservableCollection<LevelInfo> lstData = new ObservableCollection<LevelInfo>();public ObservableCollection<LevelInfo> LstData{get { return lstData; }set { lstData = value; }}}public class LevelInfo : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;private string _Level = "";private List<string> _Structure = new List<string>();private List<string> _BaseColor = new List<string>();public List<string> BaseColor{get { return _BaseColor; }set{_BaseColor = value;if (PropertyChanged != null){PropertyChanged(this, new PropertyChangedEventArgs("BaseColor"));}}}public List<string> Structure{get { return _Structure; }set{_Structure = value;if (PropertyChanged != null){PropertyChanged(this, new PropertyChangedEventArgs("Structure"));}}}public string Level{get { return _Level; }set{_Level = value;if (PropertyChanged != null){PropertyChanged(this, new PropertyChangedEventArgs("Level"));}}}}

  上面的代码很多都是Copy网上的程序,只是经过稍微修改可以使用了,具体的很多命名都没有进行规范,后期版本在处理数据时,会进行命名规范。

Telerik相关的dll文件:Telerik.rar

转载于:https://www.cnblogs.com/lufangtao/archive/2012/08/10/2631788.html

WPF系列:GridView列绑定控件(一)相关推荐

  1. 编程小问题系列(2)——为什么WPF里MediaElement等视频控件不起作用

    为什么WPF里MediaElement等视频控件不起作用? 非常可能的原因是因为没有安装Microsoft Windows Media Player 10或者10以上的播放器,MSDN文档里 就写有下 ...

  2. 【C#】wpf自定义calendar日期选择控件的样式

    原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 ...

  3. WPF 实现 DataGrid/ListView 分页控件

    原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...

  4. 《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐

    大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近在写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用dot ...

  5. WPF自定义LED风格数字显示控件

    WPF自定义LED风格数字显示控件 原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP1119 ...

  6. WPF实现炫酷Loading控件

    原文: WPF实现炫酷Loading控件 Win8系统的Loading效果还是很不错的,网上也有人用CSS3等技术实现,研究了一下,并打算用WPF自定义一个Loading控件实现类似的效果,并可以让用 ...

  7. 【小沐学C#】WPF中嵌入web网页控件(WebBrowser、WebView2、CefSharp)

    文章目录 1.简介 1.1 WPF简介 1.2 WPF 体系结构 1.3 WPF入门开发 2.WebBrowser 2.1 WebBrowser特点 2.2 WebBrowser常用的属性.方法和事件 ...

  8. WPF不同线程之间的控件的访问

    WPF不同线程之间的控件是不同访问的,为了能够访问其他线程之间的控件,需要用Dispatcher.Invoke执行一个新的活动即可. 例如: public void SetNotes(string n ...

  9. 推荐分享一个自定义绑定控件(附源码)

    在asp.net中,对于一个以数据处理为主的UI层,我们往往需要写很多的代码去实现数据的绑定,当然我们也需要费一点心思从控件上去收集数据. 下面,我分享一个自定义控件来实现双向绑定. 一.基于控件ID ...

最新文章

  1. pugixml库的一个使用心得
  2. VS2017-VC++中慎用sizeof
  3. HihoCoder - 1591 锦标赛(最大费用最大流)
  4. java中错误的源文件_如果我的Java源文件中存在语法错误,为什么Eclipse会生成.class文件?...
  5. python数据结构list的extend与append的差别
  6. 注意:不能将文件名叫做email.py,否则会报 ImportError: No module named mime.text
  7. python代码写好了怎么运行-教你如何编写、保存与运行 Python 程序
  8. ZooKeeper Watcher注意事项
  9. Java有关数组例题_Java基础——数组例题二维数组
  10. 【路径规划】基于matlab遗传结合模拟退火算法仓库拣货小车最优路径规划【含Matlab源码 649期】
  11. 树莓派4B之Windows XP系统安装游戏(二)
  12. 自由职业者-免费的电子书资源【转载】
  13. 计算机考研江苏,2020江苏高考分数线公布
  14. 四川企立方电商:拼多多团长是不是免费的
  15. order by a desc,b desc与order by a,b desc的区别
  16. dom4j——解析XML
  17. thinkbook14重装系统
  18. Spring Cloud Alibaba系列使用(二)----Nacos注册中心
  19. 计算机 拔电源 重启,电脑在关机就自动重新启动。但拔掉电源插头再关就又不会重新启动了。求高手帮忙!!!...
  20. 苹果手机怎么把游戏隐藏在计算机,苹果手机隐藏了游戏怎么找出来

热门文章

  1. 在线高精度在线计时器(秒表)
  2. 总结G1垃圾收集器面试题
  3. 完美安装ubuntu
  4. RDS SQL Server - 专题分享 - 巧用执行计划缓存之Table Scan
  5. MySQL5.7新增Performance Schema表
  6. Android studio设置代码自动提示
  7. ominigraffle 模板_商河盖梁模板安装
  8. ssm校园帮代服务系统的设计与实现答辩PPT模板
  9. 微信缓存dat怎么转图片_图片怎么转PDF?这个方法完美解决!
  10. python网络爬图_Python爬虫爬图片需要什么