单击布尔字段时,无法更新行的颜色

时间:2015-03-22 13:44:14

标签: vb.net visual-studio-2013

我有一个包含布尔字段的数据网格。当我测试程序并单击一行的复选框时,它不能立即改变行的颜色,因为我的代码有一个事件“CellEndEdit”,我必须离开单元格来改变颜色。我尝试过其他一些活动,但无法让它们发挥作用。

如果单击datagrid上的复选框,如何更改行的背面颜色?

编辑:这是一个Windows窗体应用程序(不是WPF),而我正在使用Microsoft Visual Studio Express 2013 for Windows Desktop。顺便说一句,它不是数据网格,它是从mdb数据库填充的datagridview。

1 个答案:

答案 0 :(得分:0)

看起来应该是这样的

If CheckBox1.Checked = True Then
     CheckBox1.BackColor = Color.FromArgb(255,255,255)
End If

你也可以这样做。

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    If CType(sender, CheckBox).Checked Then
        CheckBox1.BackColor = Color.FromArgb(255,255,255)
    Else
        CheckBox1.BackColor = Color.FromArgb(0, 0, 0)
    End If
End Sub

知道这是DATAGRID之后的更新 你尝试过这样的事吗?

<DataGridTextColumn Binding="{Binding Name}">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <Trigger Property="checkbox" Value="True">
                    <Setter Property="Background" Value="LightGreen"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

Change DataGrid cell colour based on values