改变DataGrid某一行和单元格的颜色

前几天,公司同事有个需求需要对系统中的DataGrid控件的指定单元格(如图,申请人ID)进行禁用设置,尝试了很多次总是 整行整列的 禁用 没实现效果。 网上资料较少,没找到解决措施。

前段时间做WPF项目,需要改变DataGrid某一行的颜色、高度,以及某个单元格的颜色、单元格字体的颜色,自然就必需取到datagrid的一行和一行的单元格,网上也是搜索了好久才找到,记录下来便于使用。

前段时间做WPF项目,需要改变DataGrid某一行的颜色、高度,以及某个单元格的颜色、单元格字体的颜色,自然就必需取到datagrid的一行和一行的单元格,网上也是搜索了好久才找到,记录下来便于使用。

尽管silverlight的datagrid控件和 asp.net的名字相同,但很多方面还是不大一样的。

 

1、前台WPF界面添加一个DataGrid控件,并添加两列(便于编写,达到目的即可)

但是换个思维方式, 任何事务都是由对象 构成,Asp.net中的datagrid的单元格是cell对象,所以 silverlight的单元格 应该也是 一个对象,一种类型,可以通过一些方法被获取到。

1、前台WPF界面添加一个DataGrid控件,并添加两列(便于编写,达到目的即可)

图片 1图片 2

 

图片 3图片 4

<DataGrid AutoGenerateColumns="False" Height="642" HorizontalAlignment="Left" Margin="131,57,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="799" CanUserAddRows="True" LoadingRow="dataGrid1_LoadingRow" GridLinesVisibility="None">            <DataGrid.ColumnHeaderStyle >                <Style TargetType="DataGridColumnHeader">                    <Setter Property="Height" Value="50"></Setter>                </Style>            </DataGrid.ColumnHeaderStyle>            <DataGrid.Columns>                <DataGridTextColumn Header="id" Binding="{Binding Path=id}" ElementStyle="{StaticResource dgCell}"></DataGridTextColumn>                <DataGridTextColumn Header="name" Binding="{Binding Path=name}" ElementStyle="{StaticResource dgCell}"></DataGridTextColumn>            </DataGrid.Columns>        </DataGrid>

多次尝试后通过以下的 代码方案简单明了的 找到了 目标条件的 单元格 DataGridCell.aspx)对象。

<DataGrid AutoGenerateColumns="False" Height="642" HorizontalAlignment="Left" Margin="131,57,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="799" CanUserAddRows="True" LoadingRow="dataGrid1_LoadingRow" GridLinesVisibility="None">
            <DataGrid.ColumnHeaderStyle >
                <Style TargetType="DataGridColumnHeader">
                    <Setter Property="Height" Value="50"></Setter>
                </Style>
            </DataGrid.ColumnHeaderStyle>
            <DataGrid.Columns>
                <DataGridTextColumn Header="id" Binding="{Binding Path=id}" ElementStyle="{StaticResource dgCell}"></DataGridTextColumn>
                <DataGridTextColumn Header="name" Binding="{Binding Path=name}" ElementStyle="{StaticResource dgCell}"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>

View Code

 

View Code

2、创建一个数据源并绑定,此处是创建一个datatable

图片 5

 

图片 6图片 7

 

2、创建一个数据源并绑定,此处是创建一个datatable

DataTable dt = new DataTable();            dt.Columns.Add(new DataColumn("id", typeof(int)));            dt.Columns.Add(new DataColumn("name", typeof(string)));            for (int i = 0; i < 6; i  )            {                DataRow dr = dt.NewRow();                if (i == 3)                {                    dr["id"] = DBNull.Value;                    dr["name"] = DBNull .Value ;                    dt.Rows.Add;                }                else                {                    dr["id"] = i;                    dr["name"] = "tom"   i.ToString();                    dt.Rows.Add;                }            }            this.dataGrid1.CanUserAddRows = false;            this.dataGrid1.ItemsSource = dt.DefaultView;

本文由糖果派对电玩城发布于用户反馈,转载请注明出处:改变DataGrid某一行和单元格的颜色

您可能还会对下面的文章感兴趣: