系列二
    实现RadGridView行中添加不同控件,并在控件中绑定不同的数据源
    先上一段前台代码

<telerik:RadGridView Grid.Row="2" x:Name="activitiesGrid1"
                              AutoGenerateColumns="False" GridLinesVisibility="None" Visibility="Collapsed"
                              UseLayoutRounding="False"  IsReadOnly="True"
                              RowHeight="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionMode="Single"
                              HorizontalGridLinesBrush="Transparent" VerticalGridLinesBrush="Transparent"
                              Background="{x:Null}" BorderBrush="{x:Null}"
                              IsFilteringAllowed="False" RowIndicatorVisibility="Collapsed"
                              CanUserFreezeColumns="False" ShowGroupPanel="False"
                              HeaderRowStyle="{StaticResource SalesInfoGridViewHeaderRowStyle}"
                              GroupRowStyle="{StaticResource SalesInfoGridViewGroupRowStyle}" 
                              RowStyle="{StaticResource SalesInfoGridViewRowStyle}"
                              ScrollViewer.HorizontalScrollBarVisibility="Auto"
                              ScrollViewer.VerticalScrollBarVisibility="Auto"  Height="200">
                             <telerik:RadGridView.Columns>
                                 <telerik:GridViewColumn Header="归属营业厅ID" Width="*" IsVisible="False">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <TextBlock  Text="{Binding ROOM_ID}" />
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="归属县ID" Width="*" IsVisible="False">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <TextBlock  Text="{Binding TOWN_ID}" />
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="归属营业厅名称" Width="*">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <TextBlock  Text="{Binding ROOM_NAME}" />
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="归属县名称" Width="*">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <TextBlock Text="{Binding COUNTY_NAME}" FontSize="14"  Width="100"/>
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="归属营业厅类型" Width="*">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <telerik:RadComboBox EmptyText="{Binding ROOM_TYPE}"  Width="100" FontSize="14" Text="{Binding  ROOM_TYPE}"
                                                                  HorizontalAlignment="Left" Style="{StaticResource RadComboBoxStyle1}" >
                                                 <telerik:RadComboBoxItem Content="形象厅"  Style="{StaticResource RadComboBoxItemStyle1}" />
                                                 <telerik:RadComboBoxItem Content="市县营业厅"  Style="{StaticResource RadComboBoxItemStyle1}"/>
                                                 <telerik:RadComboBoxItem Content="乡镇营业厅"  Style="{StaticResource RadComboBoxItemStyle1}"/>
                                             </telerik:RadComboBox>
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="创建时间" Width="*">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <TextBlock  Text="{Binding CREATETIME}" />
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="状态" Width="*">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <telerik:RadComboBox EmptyText="{Binding ROOM_STAT}" Text="{Binding ROOM_STAT}" Width="100" FontSize="14"  HorizontalAlignment="Left" Style="{StaticResource RadComboBoxStyle1}" >
                                                 <telerik:RadComboBoxItem Content="正常"  Style="{StaticResource RadComboBoxItemStyle1}" />
                                                 <telerik:RadComboBoxItem Content="异常"  Style="{StaticResource RadComboBoxItemStyle1}"/>
                                             </telerik:RadComboBox>
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewDataColumn DataMemberBinding="{Binding ROOM_DMXS}" Header="营业厅店面调节系数" Width="*" />
                                 <telerik:GridViewColumn Header="是否3人以上营业厅" Width="*">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <telerik:RadComboBox EmptyText="{Binding IS_GREATERTHREE}" Text="{Binding IS_GREATERTHREE}" Width="100"
                                                                  FontSize="14"  HorizontalAlignment="Left" Style="{StaticResource RadComboBoxStyle1}" >
                                                 <telerik:RadComboBoxItem Content="是"  Style="{StaticResource RadComboBoxItemStyle1}" />
                                                 <telerik:RadComboBoxItem Content="否"  Style="{StaticResource RadComboBoxItemStyle1}"/>
                                             </telerik:RadComboBox>
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                                 <telerik:GridViewColumn Header="" Width="*"     HeaderCellStyle="{StaticResource SalesInfoGridViewHeaderCellStyleFirst}"
                                                         CellStyle="{StaticResource SalesInfoGridViewCellStyle}">
                                     <telerik:GridViewColumn.CellTemplate>
                                         <DataTemplate>
                                             <telerik:RadButton   Style="{StaticResource RadButtonStyle}" Content="删除"
                                                              x:Name="ExceptXishu" Click="ExceptXishu_Click"
                                                              FontSize="12" Foreground="White" 
                                                              Tag="{Binding ID}" 
                                                              Height="20" Width="50"
                                                              />
                                         </DataTemplate>
                                     </telerik:GridViewColumn.CellTemplate>
                                 </telerik:GridViewColumn>
                             </telerik:RadGridView.Columns>
                         </telerik:RadGridView>

在GridViewColumn中添加GridViewColumn.CellTemplate,并在其子节点添加DataTemplate,在其中添加你想要的控件。可以在不同的控件中设置数据源绑定。

我在给RadGridView赋值的时候是通过赋值LIST集合赋值。

例如,this.activitiesGrid.ItemsSource = e.Result.ToList();---此处指的是从服务引用中返回的数据源(大家都懂得)

若你想你的控件在展示的时候默认显示第一行,请添加如下代码:

 if (this.activitiesGrid.Items.Count>)
{
this.activitiesGrid.SelectedItem = activitiesGrid.Items[];
}

在后台控制控件中某一列的显示和隐藏
声明GridViewColumn 对象,取得对象之后控制显示和隐藏

GridViewColumn column = this.activitiesGrid.Columns[第几行];

column.IsVisible = true;//显示这一列

在后台取得某一行的数据源

(在这里我用了一个技巧,在给RadGridView绑定数据源的同时,我给每一个行的数据源绑定了一个ID,是为了取得每一个行的数据源)

在RadGridView控件中,每一行我定义一个控件,例如是RadButton控件,在他的Tag属性中我绑定了这一行数据源的ID,点击事件后我将这行的ID取出,然后可以得到其数据源,前后台代码如下:

前台代码:

<telerik:GridViewColumn Header="删除" Width="*"     HeaderCellStyle="{StaticResource SalesInfoGridViewHeaderCellStyleFirst}"
                                                         CellStyle="{StaticResource SalesInfoGridViewCellStyle}">
                                 <telerik:GridViewColumn.CellTemplate>
                                     <DataTemplate>
                                         <telerik:RadButton   Style="{StaticResource RadButtonStyle}" Content="删除"
                                                              FontSize="12" Foreground="White" 
                                                              Tag="{Binding ID}" 
                                                              Height="20" Width="50"
                                                              Click="RadButton_Click_2" />
                                     </DataTemplate>
                                 </telerik:GridViewColumn.CellTemplate>
                             </telerik:GridViewColumn>

后台代码:

  private void btDeny_Click(object sender, RoutedEventArgs e)
{
RadButton btn = sender as RadButton;
int num = Convert.ToInt32(btn.TabIndex.ToString());
GridViewRow row=new GridViewRow();
var item = this.BackUserDetailes.Items[num];//绑定数据源的同时,给从库中返回的数据源制定了ID
row=this.BackUserDetailes.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
//得到Row对象后可以将其的数据源转换成你想要的类型
想要的类型=row.DataContext as 想要的类型;
}

也可以用另外一种简单的方式获得这一行的数据源
想要的类型=btn.DataContext as 想要的类型。

在后台获取行中有不同控件值的方法

取得了GridViewRow对象之后,可以取得这一行的每个单元格,即可把单元格中的控件取出。代码如下:

例如,你在这一单元格中放置的是RadComboBox控件,可以通过:RadComboBox box=row.Cells[第几个单元格].Content as RadComboBox;将RadComboBox对象取出,并进行你想要的操作。

在RadGridView中对某一列的特殊的控件赋值,通过这一列的控件中声明其Loaded事件,为这一行的特殊的控件赋值。

例如下例:

<telerik:GridViewColumn Header="给特殊列绑定单个数据" Width="*"     HeaderCellStyle="{StaticResource SalesInfoGridViewHeaderCellStyleFirst}"
                                                         CellStyle="{StaticResource SalesInfoGridViewCellStyle}" >
                                 <telerik:GridViewColumn.CellTemplate>
                                     <DataTemplate>
                                         <telerik:RadComboBox EmptyText="{Binding 绑定的数据源中字段名称}"  Text="{Binding 绑定的数据源中字段名称}"
                                                              FontSize="14" Width="200" HorizontalAlignment="Left"
                                                              Style="{StaticResource RadComboBoxStyle1}"   
                                                              Loaded="RadComboBox_Loaded">
                                             <telerik:RadComboBoxItem Content="{Binding 绑定的数据源中字段名称}" Tag="{Binding CHNL_ID}" Style="{StaticResource RadComboBoxItemStyle1}" />
                                         </telerik:RadComboBox>
                                     </DataTemplate>
                                 </telerik:GridViewColumn.CellTemplate>
                             </telerik:GridViewColumn>

其中,EmptyText="{Binding 绑定的数据源的名称}"指的是其RadComboBox在没有 默认显示第一个值时的赋予该控件的值。
后台代码如下:

private void RadComboBox_Loaded(object sender, RoutedEventArgs e)
         {
             RadComboBox box = sender as RadComboBox;
             box.Items.Clear();
             (sender as RadComboBox).DisplayMemberPath = "ROOM_NAME";
             (sender as RadComboBox).Tag = this.chnlList[0].ROOM_ID;
             (sender as RadComboBox).ItemsSource = 数据源名称;          
             box.ItemsSource = chnlList;
         }


silverlight RadGridView总结二(转载)的更多相关文章

  1. silverlight RadGridView总结三(转载)

    在RadGridView中进行分组以及导出 分组 主要是在前台进行分组的定义: 前台代码: <telerik:RadGridView x:Name="RadGridView1" ...

  2. silverlight RadGridView总结系列(转载)

    系列一. RadGridView常用属性总结    1.不可编辑----IsReadOnly="True".    2.不自动增加行----AutoGenerateColumns= ...

  3. SilverlightOA源代码(可用于企业级Silverlight项目的二次开发,长年有效)

    Silverlight OA系统简介 系统功能简介 l 程序界面介绍: 左侧为主菜单,主菜单可以展开和收起,主菜单下面的所有模块都可以在数据库中扩展增加,模块的权限和用户角色挂钩,可以在数据库中创建多 ...

  4. SilverLight.3-Validation:二、银光验证。TheLabel、TheDescriptionViewer和TheValidationSummary

    ylbtech-SilverLight.3-DataControls_BetterDataFroms:二.银光验证.TheLabel.TheDescriptionViewer和TheValidatio ...

  5. Silverlight RadGridView的HeaderCellStyle样式

    效果图 <UserControl x:Class="SilverlightApplication7.MainPage" xmlns="http://schemas. ...

  6. PCB优化设计(二) 转载

    PCB优化设计(二) 2011-04-25 11:41:05|  分类: PCB设计   目 前SMT技术已经非常成熟,并在电子产品上广泛应用,因此,电子产品设计师有必要了解SMT技术的常识和可制造性 ...

  7. Silverlight学习(二)

    好久没来写博客了,这期间经历了春节,也因为忙于一个项目,所以博客被疏忽了.最近一段时间一直在用silverlight做项目,从来一开始的不熟悉渐渐的开始上手.今天记录一下自己学习prism的一些sam ...

  8. Fiddler实战深入研究(二)[转载]

    Fiddler实战深入研究(二) 阅读目录 Fiddler不能捕获chrome的session的设置 理解数据包统计 请求重定向(AutoResponder) Composer选项卡 Filters选 ...

  9. Spring WebSocket入门(二) 转载

    本文转载自:http://www.jianshu.com/p/8500ad65eb50 WebSocket前端准备 前端我们需要用到两个js文件:sockjs.js和stomp.js SockJS:S ...

随机推荐

  1. python3类方法,实例方法和静态方法

    今天简单总结下python的类方法,实例方法,静态方法. python默认都是实例方法,也就是说,只能实例对象才能调用这个方法. 那是不是说类方法也只能被类对象本身来调用呢,当然,不是.类方法既可以被 ...

  2. 【bzoj1335】Radio Transmission

    给你一个字符串,它是由某个字符串不断自我连接形成的.但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 因为这个字符串是不断自匹配形成的我们可以很容易的想到,除了第一个字符串外,从第二个字符串 ...

  3. golang笔记:unsupported driver -> Scan pair: <nil> -> *string

    golang里,操作mysql数据库,使用查询语句的时候,一般的写法 rows, err := db.Query("select name from table") if err ...

  4. [转载]数学【p1900】 自我数

    题目描述-->p1900 自我数 本文转自@keambar 转载已经原作者同意 分析: 思路还是比较好给出的: 用类似筛选素数的方法筛选自我数. 但是要注意到题目限制的空间仅有4M,不够开10^ ...

  5. 微信小程序开发教程(九)视图层——.wxss详解

    WXSS是一套样式语言,用于描述WXML的组件样式. 官方文档表示,WXSS的选择器目前支持(“.class”.“#id”.“elemnt”.“element,element”.“::after”.“ ...

  6. 3Sum Smaller -- LeetCode

    Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 < ...

  7. POJ 1466 Girls and Boys(二分图匹配)

    [题目链接] http://poj.org/problem?id=1466 [题目大意] 给出一些人和他们所喜欢的人,两个人相互喜欢就能配成一对, 问最后没有配对的人的最少数量 [题解] 求最少数量, ...

  8. 小程序与h5的相互跳转

    1, 小程序跳h5 <web-view src="https://zgl.seamo.cn/zglh5/kjzjlist1.html"></web-view> ...

  9. Java使用POM一JAR包的形式管理JavaScript文件-WebJars

    说明:原来JS框架还可以使用POM进行管理的.WebJars是一个很神奇的东西,可以让大家以JAR包的形式来使用前端的各种框架.组件. 什么是WebJars 什么是WebJars?WebJars是将客 ...

  10. C#将json字符串解析成对象

    首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端   //这是一个以id,email,age的json字符串   var jdata="[{\"id\&quo ...