通过Tag属性可以设置自定义的数据,使用GetCellContent方法可以到单元格内的控件,所以就可以得到你点击的是哪一行了。点击的操作就很容易了。
下面的是全部的源代码
<xmp></xmp>
Page,xaml
-
<UserControlxmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
-
x:Class="DataGridSnippets.Page"
-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-
Width="600"Height="Auto">
-
<ScrollViewerVerticalScrollBarVisibility="Auto"BorderThickness="0">
-
<StackPanelMargin="10,10,10,10">
-
<data:DataGridx:Name="dataGrid1"
-
Height="200"Margin="0,5,0,10"
-
AutoGenerateColumns="False"LoadingRow="dataGrid1_LoadingRow">
-
<data:DataGrid.Columns>
-
<data:DataGridTextColumnHeader="序号"Width="120"Binding="{BindingIndexName}"/>
-
<data:DataGridTextColumnHeader="姓名"Width="120"Binding="{BindingUserName}"/>
-
<data:DataGridTextColumnHeader="地址"Width="120"Binding="{BindingAddress}"/>
-
<data:DataGridTemplateColumnHeader="功能按钮"Width="80">
-
<data:DataGridTemplateColumn.CellTemplate>
-
<DataTemplate>
-
<StackPanelOrientation="Horizontal">
-
<ButtonContent="初始化内容"x:Name="Button1"Click="Button1_Click"Tag=""></Button>
-
</StackPanel>
-
</DataTemplate>
-
</data:DataGridTemplateColumn.CellTemplate>
-
</data:DataGridTemplateColumn>
-
</data:DataGrid.Columns>
-
</data:DataGrid>
-
<TextBlockx:Name="msg"></TextBlock>
-
</StackPanel>
-
</ScrollViewer>
-
</UserControl>
Page.xaml.cs
-
usingSystem;
-
usingSystem.Collections.Generic;
-
usingSystem.Windows;
-
usingSystem.Windows.Controls;
-
namespaceDataGridSnippets
- {
-
publicpartialclassPage:UserControl
- {
-
publicPage()
- {
- InitializeComponent();
-
- dataGrid1.ItemsSource=Customer.GetSampleCustomerList();
- }
-
privatevoiddataGrid1_LoadingRow(objectsender,DataGridRowEventArgse)
- {
- CustomerbindData=(Customer)e.Row.DataContext;
-
Buttonbtn=dataGrid1.Columns[3].GetCellContent(e.Row).FindName("Button1")asButton;
- btn.Content=bindData.UserName;
-
btn.Tag=bindData.IndexName+","+e.Row.GetIndex();
- }
-
privatevoidButton1_Click(objectsender,RoutedEventArgse)
- {
-
Buttonb=senderasButton;
-
string[]t=b.Tag.ToString().Split(',');
-
msg.Text="你选择的值是:"+t[0]+"是DataGrid的第"+t[1]+"行";
- }
- }
-
-
-
-
publicclassCustomer
- {
-
publicInt32IndexName{get;set;}
-
publicStringUserName{get;set;}
-
publicStringAddress{get;set;}
-
publicCustomer(Int32indexName,StringuserName,Stringaddress)
- {
-
this.IndexName=indexName;
-
this.UserName=userName;
-
this.Address=address;
- }
-
publicstaticList<Customer>GetSampleCustomerList()
- {
-
-
List<Customer>data=newList<Customer>();
-
for(inti=0;i<10;i++)
- {
-
data.Add(newCustomer(i*i,"孟宪会之"+i.ToString(),"地址之"+i.ToString()));
- }
-
returndata;
- }
- }
- }
本文基于Silverlight 2.0正式版。
分享到:
相关推荐
silverlight DataGrid 不修改数据显示行号
10、Silverlight(12) - 2.0外观之样式, 模板, 视觉状态和视觉状态管理器 11、Silverlight(13) - 2.0交互之鼠标事件和键盘事件 12、Silverlight(14) - 2.0交互之InkPresenter(涂鸦板) 13、Silverlight(15) - 2.0...
在Silverlight中通过ItemsSource给DataGrid赋值
datagrid 动态添加模板列 asp.net 模板列继承ITemplate 绑定字段名称
WPF中的DataGrid合并单元格,模板列内嵌套DataGrid,非真正合并
silverlight导出DataGrid数据实例
DataGrid模板列自定义控件使用,依赖属性的绑定
silverlight 将DataGrid数据导出EXCEL
将silverlight中datagrid的数据导出为Excel表格.txt
DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题
2.0DataGrid嵌套DataGrid,里面的鼠标滚动响应到外部,利用自定义命令传递滚轮事件参数实现,详细效果请移步: https://blog.csdn.net/u010438205/article/details/105710794
使用MVVM模式对WPF中的DataGrid控件动态添加列,并实现了编辑模式。
在datagrid中某行的单元格中增加一个datagrid,实现明细表及合并单元格绑定方法
基于siverlight动态生成DataGrid模板列源码例子
WPF中使用附加行为方式实现DataGrid显示行号。
该demo是一个纯用Grid写DataGrid并且展示如何使用的一个简单的demo
Wince DataGrid动态添加列和绑定数据 并修改数据 ----------------------------------------------- 对于DataGrid中 值的修改 是参考别人的代码加上自己的一些方法做出来的!
好看的silverlight datagrid样式
jquery.easyui.datagrid自动合并列扩展,支持多列合并。 用法:加载成功后 $('#'+tab).datagrid("autoMergeCells",['列名','列名']);