说明:vs2010 ultimate + silverlight5
本文中所有代码都可以在github中查看,git版本中采用了master-dev的方式。在master中可以查看每一个demo的最后完成,在dev中可以查看每一步的代码。
github地址:git@github.com:kiwiwin/silverlight-demo.git文件夹名称datagrid-button
在这个demo中,我们将会创建由两列构成的DataGrid,一列表示数值,一列是Button按钮。当点击对应行的Button时,对应的数值+1
1.在DataGrid中添加一行表示Button:
<sdk:DataGrid AutoGenerateColumns="False" Height="276" HorizontalAlignment="Left" Margin="12,12,0,0" Name="numberGrid" VerticalAlignment="Top" Width="376">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Width="100" Header="个数" Binding="{Binding Number}"/>
<sdk:DataGridTemplateColumn Width="100" Header="按钮">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Increase" Click="Increase_click"></Button>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
2.添加点击Button对应的时间处理代码和相应的初始化代码:
需要注意的是,虽然使用了ObservableCollection,但是如果只是修改了ObservableCollection中的一个Item中的值,DataGrid将不会直接更新显示,这里就先赋值null,再赋值原来的items。(ps:如果你有更好的方法,可以在github上发送一个pull request,我会非常感谢你)
public partial class MainPage : UserControl
{
private ObservableCollection<NumberItem> items;
public MainPage()
{
InitializeComponent();
InitItems();
numberGrid.ItemsSource = items;
}
private void InitItems()
{
List<NumberItem> numberItems = new List<NumberItem>();
numberItems.Add(new NumberItem {Number = 3});
numberItems.Add(new NumberItem {Number = 4});
items = new ObservableCollection<NumberItem>(numberItems);
}
private void Increase_click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
var item = button.DataContext as NumberItem;
item.Number += 1;
numberGrid.ItemsSource = null;
numberGrid.ItemsSource = items;
}
}
public class NumberItem
{
public int Number { get; set; }
}
3.效果如图:
开始时:
点击了第二行中的Increase按钮以后:
分享到:
相关推荐
在datagrid中某行的单元格中增加一个datagrid,实现明细表及合并单元格绑定方法
silverlight导出DataGrid数据实例
将silverlight中datagrid的数据导出为Excel表格.txt
silverlight 将DataGrid数据导出EXCEL
为DataGrid添加确认删除的对话框 confirm javascript
该demo是一个纯用Grid写DataGrid并且展示如何使用的一个简单的demo
在Silverlight中通过ItemsSource给DataGrid赋值
使用MVVM模式对WPF中的DataGrid控件动态添加列,并实现了编辑模式。
在DataGrid控件中添加自定义编号列
Wince DataGrid动态添加列和绑定数据 并修改数据 ----------------------------------------------- 对于DataGrid中 值的修改 是参考别人的代码加上自己的一些方法做出来的!
silverlight DataGrid 不修改数据显示行号
好看的silverlight datagrid样式
DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题
对DataGrid控件 增删改 全选 操作 详细说明用法 请看我的博客
silverlight 4 datagrid 导出excel。非OOB方法导出excel,能够将datagrid中的数据导出到本地存储,
网上现在的资料是一个导入后在datagrid中显示并在chart图表中显示的一个例子,有点难,我们只是想简单的一个操作,花了尽半个月后,我终于搞明白了,拿出来和大家共享一下。
WPF之MVVM中DataGrid中嵌入Combox,改变Combox可回传至绑定的实体
图片是在XP下截的,所以看不出效果,在Win7下效果好点.其中的DataGrid分页绑定控件方法只要传入被绑定的DataGrid对象和数据源就可以绑定了,操作简单.
实现了Silverlight DataGrid list数据绑定,并实现了日期选择及查看信息的效果
SilverLight DataGrid主从表折叠显示、全选、多选、选项删除、排序