探索 NetAdvantage for WPF 2008 volume 1之二 xamDataGrid之添加行 [原创]
懒惰了几天,今天又开始写啦!
上次我们简单介绍了一下NetAdvantage的功能中的xamDataGrid,今天我们来详细介绍一下我们安装的NetAdvantage 2008 v1中的目录吧:)
安装目录D:\Program Files\Infragistics\NetAdvantage for WPF 2008 Vol. 1
我们发现了几个文件夹:
Bin :主要是装配集文件(.dll),你用控件的时候做个引用就可以啦。
Bin - Signed :我发现里面装的是2007 vol.2的装配件压缩包(2007 vol2那会还免费呢)。
DefaultStyles :这里主要是一些样式和模版的xaml文件,如果你想设置自己的样式,你可能还要到这里参考,不过千万别全信,有些xaml写的有些问题,以后我会 告诉大家那些问题的。
Express Upgrade Utility :更新控件的小程序。
至于Help和quickstart_images等等其他的东西我也就不必说了,要不岂不侮辱大家的智慧:)!
NetAdvantage控件主要分为几个部分:
1 xamDataGrid 不用说,这个家伙是最抢手的货,其实我们很多开发中都用到它,骨灰级宝贝;
2 xamRibbon 说实话,这个控件我还没有用过,主要是设计菜单和程序顶部的布局时用的,如果你有应用心得,请告诉我,哈
3 xamDockManager 这家伙不错,新货,能让你的应用程序界面轻松的布局成VS2008的样式,提供停靠/活动版面布局,还有活动的Document布局,应用起来如同在VS中随意组合和拆借各个工具条窗体,很是方便,是居家旅行,杀人越货的………………
4 xamChart 不用我说你也能猜到,各式各样的图表,2D ,3D的,很多还有动画,有饼图,折线图,柱状图,点状图,丰富的表现,会让你的程序更加生动。
5 xamEditors 就是代替M$的一些控件,比如xamTextEditor,xamComboEditor,xamNumericEditor等,功能不错,集成了数据校验、数据约束等等功能。
6 xamCarouselListBox 那就是酷的代名词,有把ListBox做成这样的绝对有创意,不过商业的软件做成这样有点BT......
7 xamDataCarousel 这家伙表现力更强,就是数据集的动画式表现,不过说了只能适合玩玩,没有见过应用为商业模式的......
有人说了,你介绍的这些太简单了,当然了我介绍针对初学者,如果您是“肉鸟”了,就等我以后的文章吧,现在是社会主义初级阶段……
我们对NetAdvantage有了大概的了解,现在我们开始真正的探索之路,我的介绍模式是Demo讲解+个人体会,我们用的Demo是NetAdvantage提供的,如果碰见有些地方不对,请大家多多提出宝贵意见,在下乖乖学习
好了不废话,先从我们最重要使用范围最大的xamDataGrid开始讲吧:
第一个功能:在xamDataGrid中新增一行数据(完美的数据和界面互动的结合)
看码
<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings AddNewRecordLocation="OnTopFixed" AllowAddNew="True"/>
</igDP:XamDataGrid.FieldLayoutSettings>
</igDP:XamDataGrid>
看好,<igDP:FieldLayoutSettings AddNewRecordLocation="OnTopFixed" AllowAddNew="True"/>
这两个属性一个设置的是布局(AddNewRecordLocation),设置添加行出现的位置;另一个设置的是是否允许显示添加行(AllowAddNew);
其实呢只设置属性还是不够的,你必须要显示的数据源必须要支持IBindingList接口,比如BindingList<T>,只有这样才能实现自动增加功能:AllowAddNew=ture && IBindingList.AllowNew == true,这时候数据源允许在界面对数据源进行操作。一般情况下我们都用BindingList<T>或者是DataView等作为数据源,个人感觉还是BindingList<T>比较爽,现在看下数据源代码
2 {
3 public AddRecord_Samp()
4 {
5 InitializeComponent();
6 }
7
8 void Page_Loaded(object o, RoutedEventArgs e)
9 {
10 DataSet ds = GenerateData();
11 this.XamDataGrid1.DataSource = ds.Tables[0].DefaultView;
12 }
13
14 DataSet GenerateData()
15 {
16 DataSet ds = new DataSet();
17 DataTable dt = ds.Tables.Add("TopMovies");
18
19 dt.Columns.Add("Title", typeof(String));
20 dt.Columns.Add("Running Time", typeof(string));
21 dt.Columns.Add("Release Date", typeof(DateTime));
22 dt.Columns.Add("MPAA Rating", typeof(string));
23 dt.Columns.Add("Critics Rating", typeof(string));
24 dt.Columns.Add("Cumulative Gross", typeof(decimal));
25
26 dt.Rows.Add(new object[] { "Open Season", "1 hr. 40 min.", DateTime.Parse("September 29, 2006"), "PG", "C", 23624548M });
27 dt.Rows.Add(new object[] { "The Guardian", "2 hrs. 19 min.", DateTime.Parse("September 29, 2006"), "PG-13", "C", 18006064M });
28 dt.Rows.Add(new object[] { "School For Scoundrels", "1 hr. 41 min.", DateTime.Parse("September 29, 2006"), "PG-13", "C-", 8602333M });
29 dt.Rows.Add(new object[] { "Jet Li's Fearless", "1 hr. 43 min.", DateTime.Parse("September 22, 2006"), "PG-13", "B-", 18066869M });
30 dt.Rows.Add(new object[] { "Gridiron Gang", "120 min.", DateTime.Parse("September 15, 2006"), "PG-13", "C+", 33258307M });
31 dt.Rows.Add(new object[] { "The Illusionist", "1 hr. 49 min.", DateTime.Parse("August 18, 2006 "), "PG-13", "B", 31378443M });
32
33 return ds;
34 }
35 }
当然了你可以随意设置AddNewRecordLocation属性:OnTopFixed(固定于顶端);OnTop(顶端);OnBottomFixed(固定底部);OnBottom(底部);Default(默认为固定顶端),至于固定不固定的我简单测试一下,没有发现位置上的区别。还有些在FieldLayoutSettings中设置的属性,比如RecordSelectorLocation(是否显示行选择器:一个小箭头) AllowDelete、等等。
今天我们主要介绍了一下如何做简单的数据绑定和让你的界面上出现新增行的设置,下次我们继续说神奇的xamDataGrid!
祝大家吃好睡好玩好,我们下回分解