您的位置:首页 > 其它

WPF,Silverlight与XAML读书笔记第二十九 - 控件之十一 – 高级控件

2012-09-18 17:25 295 查看
这部分介绍的控件都是一些组合的高级控件,有些当初位于Control Tookits中,后来被移动到主框架。本文中我们将学习这其中一些常用的。

DataGrid控件(Silverlight 2.0)

DataGrid控件类似于电子表格,用来展示行列型的数据。另外可以将这个控件绑定到数据源。在实际中我们常用到如下属性:

Name(x:Name):通过这个属性可以给DataGrid控件指定一个名称

AutoGenerateColumns:在DataGrid绑定到数据的时候会自动生成需要的行和列

SelectMode属性:DataGrid有两种选择模式:单选模式与多种模式,前者一次选择一行数据,后者可以通过按住Ctrl或Shift键来选择多行。将该属性设置为DataGridSelectionMode.Single时DataGrid是单选模式,设置为DataGridSelectionMode.Extended为多选模式。

SelectedItem:该属性包含当前DataGrid中被选择的项,在单选模式下,该属性返回object类型的对象,在使用之前需要使用as运算符将其转换为正确的类型。在多选模式下,该属性为System.Collections.Ilist类型的集合,可以遍历这个集合得到想要的项。

RowBackground/AlternatingRowBack:通过设置这两个属性,可以让DataGrid获得有交替背景色的行。这两个属性都接受SolidColorBrush类型的对象。

DisplayIndex:默认情况下DataGrid中列的显示顺序为源对象中属性声明的顺序,通过DisplayIndex属性我们可以自定义列的前后顺序。这个属性实际上是DataGrid的Columns属性的一个属性,所以我们需要使用如下方式来设置:
datagridObj.Column[1].DisplayIndex = 0;

以上代码实现了让默认状态下第二列显示在首列位置。

另外如之前介绍过的诸多控件,DataGrid也允许通过数据模板来自定义表格中数据显示的方式,通过下面一段简单的代码来了解这个特性:

<my:DataGrid x:Name="GrdHeadline" AutoGenerateColumns="True">
<my:DataGrid.Columns>
<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="123"></TextBlock>
<TextBlock Text="{Binding strHead}"></TextBlock>
<TextBlock Text="{Binding strPubDate}"></TextBlock>
</StackPanel>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding strLine}"></TextBlock>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
</my:DataGrid.Columns>
</my:DataGrid>


具体数据模板的XAML语法不再赘述,这里我们通过my:引入了DataGrid控件所在的命名空间,这是通过根元素中如下代码实现的:xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"

Calendar控件(Silverlight 2.0)

日历控件可以用来显示指定月份的日子或指定年份的月,日历控件中提供了两个箭头来在月份或年份之间进行切换。默认情况下渲染的Calendar控件以月视图方式展示,并高亮显示当天日期。该控件中比较有用的属性:

DisplayDate属性:如果需要自定义高亮某个日期,而不是默认高亮显示当天日期,可以使用这个属性指定。

SelectedData属性:当没有任何日期被选中时,该属性返回null,否则返回DateTime类型的对象。也可以通过这个属性设置控件中选中的日期。

BlackoutDates属性:这个属性用来设置不可选择的日子,其使设置的日期(段)变为灰色来表示这段时间不可选择。这个属性为CalendarDateRangeCollection类型,可以像其中加入时间段。

SelectableDateStart和SelectableDateEnd属性:这两个组合使用的属性用来设置想要在控件中显示的一段时间。

DatePicker控件(Silverlight 2.0)

DataPicker是文本框与Calendar控件的结合体,其显示为一个文本框,可以直接输入日期或在点击文本框时弹出的下拉框中选择日期。在选择一个日期后这个小控件会关闭,在选择日期的控件弹出与关闭过程中会分别触发CalendarOpened与CalendarClosed事件。另外如果直接输入的日期格式有错误会触发TextParseError事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐