您的位置:首页 > 其它

silverlight 中DataGrid分组,分组名中午显示,分组数据ID转为Name显示

2015-01-05 10:00 513 查看


<sdk:DataGrid AutoGenerateColumns="False" Name="_datagridSensor" GridLinesVisibility="All" HorizontalAlignment="Stretch" VerticalScrollBarVisibility="Auto"

Margin="0,5,0,5"

Height="502" ItemsSource="{Binding UserSensors}"
LoadingRowGroup="_datagridSensor_LoadingRowGroup">

<sdk:DataGrid.Columns>

<sdk:DataGridCheckBoxColumn Header="选择" Binding="{Binding isUsed,Mode=TwoWay}" />

<sdk:DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=SensorType,Converter={StaticResource SensorTypeConverterKey}}"
Header="传感器类型" Width="10*" />

<data:DataGridTextColumn Header="设备编号" IsReadOnly="True" Binding="{Binding Path=SensorNo}" Width="10*" HeaderStyle="{StaticResource DataGridColumnHeaderCentered}" />

<data:DataGridTemplateColumn Header="安装位置" IsReadOnly="True" Width="20*" HeaderStyle="{StaticResource DataGridColumnHeaderCentered}" >

<data:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">

<TextBlock Text="{Binding Path=address}" />



</StackPanel>

</DataTemplate>

</data:DataGridTemplateColumn.CellTemplate>

</data:DataGridTemplateColumn>



</sdk:DataGrid.Columns>

</sdk:DataGrid>

//设置分组的名称,中文显示,如果没这个方法,那么显示的是字段名

private void _datagridSensor_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)

{

e.RowGroupHeader.PropertyName = "传感器类型";





e.RowGroupHeader.Background = new SolidColorBrush(Colors.Orange);

}

分组数据又ID变为Name,需要在数据源那里处理

void op_Completed(object sender, EventArgs e)

{

List<proc_GetUserSensor_Result> list = (List<proc_GetUserSensor_Result>)(sender as InvokeOperation).Value;

//UserSensors = list;

UserSensors = new PagedCollectionView(list);



UserSensors.GroupDescriptions.Add(new System.Windows.Data.PropertyGroupDescription("SensorType",new SensorTypeConverter()));

}

在设置分组字段的时候,添加一个converter,前台datagrid绑定里的converter和后台数据源设置用的是一个converter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: