DataGrid是个可编辑的列表控件,而且可以用已有的输入控件来作为某一列的编辑控件,比如用ComboBox控件来作为某列的编辑控件供用户选择数据,这个时候就要先设置好ComboBox控件的下拉列表项了,在silverlight里怎么做呢?

首先,定义好XAML,如下:

<data:DataGrid Grid.Row="0" x:Name="gridVariables" RowHeight="20" AutoGenerateColumns="False" BorderThickness="1,1,1,1">
                        <data:DataGrid.Columns>
                            <data:DataGridTemplateColumn Header="类型" Width="120">
                                <data:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding Type}"/>
                                    </DataTemplate>
                                </data:DataGridTemplateColumn.CellTemplate>
                                <data:DataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <ComboBox >
                                        </ComboBox>
                                    </DataTemplate>
                                </data:DataGridTemplateColumn.CellEditingTemplate>
                            </data:DataGridTemplateColumn>
                       </data:DataGrid.Columns>
                    </data:DataGrid>
其次,需要定义一个类并由该类的一个属性来提高选项数据来源,如下:

public class WorkflowVariableTypes
    {
        public List<WorkflowVariableType> WorkflowVariableTypeList
        {
            get
            {
                List<WorkflowVariableType> types = new List<WorkflowVariableType>();
                for (int i = 0; i < 14; i++)
                {
                    types.Add(new WorkflowVariableType {Type = (VariableType)i });
                }

return types;
            }
        }
    }
然后,我们就可以通过用户控件资源的方式声明该类的一个实例,如下:

<UserControl.Resources>
        <local:WorkflowVariableTypes x:Key="workflowVariableTypes" />
    </UserControl.Resources>

最后,就是使用该资源了,如下:

<data:DataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <ComboBox ItemsSource="{Binding WorkflowVariableTypeList, Source={StaticResource workflowVariableTypes}}">
                                        </ComboBox>
                                    </DataTemplate>
                                </data:DataGridTemplateColumn.CellEditingTemplate>
这个过程有些类似格式化DataGrid里的列数据,而且我们也可获得一个经验,那就是用户控件的资源是个很强大的东西,可以用来引用静态的东西(图片,样式等),也可以引用动态的东西(代码,类)。

转载于:https://www.cnblogs.com/lifuyun/archive/2009/09/18/lifuyun09091804.html

silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时...相关推荐

  1. C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面...

    个人理解,开发应用程序的目的,不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等 ...

  2. Silverlight 信息显示与编辑控件 示例

    Silverlight 真是一个不错的开发平台,想到即将发布的Silverlight 4 更是增加了像去学习他的兴趣. 信息显示控件 TextBlock 信息显示第一个要说的一定是TextBlock, ...

  3. Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果

    Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果 转载于:https://www.cnblogs.com/K ...

  4. ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件...

    本篇要登场的有三个控件,分别是滚轴控件.进度条控件和编辑控件. 一.滚轴控件 Ext.slider 1.滚轴控件的定义 下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向.纵向,以及单值.多值选择 ...

  5. mfc c语言 编辑器,语法高亮编辑控件Scintilla在MFC中的简单使用

    项目中要使用代码编辑器,搜索之后,发现了强大的编辑器控件Scintilla. 1.简介 Scintilla是一款开源的语法高亮编辑器控件,官方网站:http://www.scintilla.org/. ...

  6. Asp.net中使用WEB编辑控件FCKEditor

    先要下载两个文件: FCKEditor(JS文件),FCKEdito.net(COM+组件 DLL文件) 官方网站:http://sourceforge.net FCKEdiotr的安装与配置: 把F ...

  7. altas(ajax)控件(二十):让BulletedList拥有客户端索引、分页和排序的控件

    PagingBulletedList agingBulletedList扩展器控件可以让某个ASP.NET BulletedList拥有客户端索引.分页和排序的功能. 示例运行效果: 图(1) 图(2 ...

  8. (转)基于MVC4+EasyUI的Web开发框架经验总结(5)--使用HTML编辑控件CKEditor和CKFinder...

    http://www.cnblogs.com/wuhuacong/p/3780356.html Web开发上有很多HTML的编辑控件,如CKEditor.kindeditor等等,很多都做的很好,本文 ...

  9. VCL组件之编辑控件

    VCL组件之编辑控件 Note 以后将用两种方式提及组件,以组件的名称或定义组件的VCL类的名称.可以说"Label组件用于--"或说"TLabel用于--", ...

最新文章

  1. 也做SQL查询:班级总成绩 前三名,总成绩有相等的情况
  2. Spring boot程序入口
  3. css float(脱离正常流:向左/右浮动直到父元素/另一float, 不占空间)
  4. 从技术演变的角度看互联网后台架构
  5. 如何提高英文的科研写作能力
  6. OLAP引擎:基于Druid组件进行数据统计分析
  7. 在线支付巨头PayPal宣布退出Libra:继续就未来合作方式进行对话
  8. java删除sql表中记录,您将如何维护SQL表中的历史记录?
  9. Linux系统编程 -- 信号及signal函数
  10. php+mysql图书管理系统
  11. 一步一步学Repast 第五章——模拟粒子运动,了解Schedule
  12. matlab二维傅里叶变化并得到频谱,图像的二维傅里叶变换和频谱
  13. NeoKylin(中标麒麟)6.5 更新yum源
  14. 计算机打不开硬盘,电脑硬盘打不开的原因 如何解决电脑硬盘问题
  15. php trying to get,php 做微信认证登陆 返回错误 Trying to get property of non-object
  16. 苹果审核技术支持URL导致的被拒解决方式
  17. CSS透明度opacity与IE中的透明度滤镜filter的最准确的用法
  18. ArcGIS教程 - 3 ArcGIS快速入门
  19. python实现截取视频中特定帧进行保存功能
  20. 【渝粤题库】广东开放大学 文化投资与贸易 形成性考核 (2)

热门文章

  1. mybatis jar包_Spring和mybatis的集成步骤
  2. python简单装饰器_简单介绍Python装饰器(一)
  3. 导入eclipse项目运行时run as no application
  4. 机器学习四剑客1——Numpy
  5. OpenCV(25)轮廓检测(轮廓提取、属性、近似轮廓、外接矩形和外接圆)
  6. python文件关键行数_Python计算大文件行数方法及性能比较
  7. CloudCompare基础教程(1)-介绍
  8. CSR稀疏矩阵存储方式
  9. c++11 之模板定义别名(using)
  10. Learn OpenGL (四):纹理