鼠标放到哪一行,哪一行颜色发生变化

本文详细介绍了如何在GridView中实现鼠标悬停时的样式变化,包括onmouseover和onmouseout事件的触发,以及如何在GridView的数据行上添加样式属性。
protected void GridView2_RowDataBound1(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType==DataControlRowType.DataRow)
        {
            //当鼠标在某一行上方时激发
            e.Row.Attributes.Add("onmouseover", "curColor=this.style.backgroundColor;this.style.backgroundColor='#D9B3B3'");
            //当鼠标从某一行上方移开时激发
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=curColor");
        }
    }

 
在 WPF 中,ComboBox 控件绑定到一个枚举类型(如 `EnumProductCodeType`)时提示找不到 `DataContext`,通常与绑定上下文的设置方式或绑定路径有关。以下是可能的原因及解决方案: ### 1. 枚举类型未正确暴露为绑定源 WPF 的数据绑定机制要求绑定源(即 `ItemsSource` 绑定的目标)必须是一个可枚举的集合(如 `IEnumerable` 或 `IList`)。枚举类型本身并不是集合,因此直接绑定会导致绑定失败。 解决方案是将枚举值转换为集合,例如使用 `Enum.GetValues` 方法获取枚举值数组,并将其作为绑定源: ```csharp // 在 ViewModel 或代码后台中定义 public IEnumerable<EnumProductCodeType> ProductCodeTypes { get { return Enum.GetValues(typeof(EnumProductCodeType)).Cast<EnumProductCodeType>(); } } ``` 然后在 XAML 中绑定到 `ComboBox`: ```xml <ComboBox ItemsSource="{Binding ProductCodeTypes}" /> ``` ### 2. DataContext 未正确设置 如果 `ComboBox` 的父级控件(如 `Window` 或 `UserControl`)未设置 `DataContext`,或者绑定路径不正确,也会导致找不到 `DataContext` 的错误。确保 `DataContext` 已设置,并且绑定路径正确指向 `ProductCodeTypes` 属性: ```xml <Window DataContext="{Binding RelativeSource={RelativeSource Self}}"> <ComboBox ItemsSource="{Binding ProductCodeTypes}" /> </Window> ``` ### 3. 使用 `ObjectDataProvider` 动态获取枚举值 如果希望在 XAML 中直接获取枚举值,可以使用 `ObjectDataProvider` 定义绑定源: ```xml <Window.Resources> <ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="ProductCodeTypeValues"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="local:EnumProductCodeType" /> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </Window.Resources> ``` 然后在 `ComboBox` 中绑定到该资源: ```xml <ComboBox ItemsSource="{Binding Source={StaticResource ProductCodeTypeValues}}" /> ``` ### 4. 检查绑定错误信息 WPF 的输出窗口通常会显示绑定错误的详细信息。如果绑定失败,可以在输出窗口查看具体的错误信息,例如 `Path` 是否正确或 `Source` 是否可用。可以通过以下方式启用绑定错误调试: ```xml <ComboBox ItemsSource="{Binding ProductCodeTypes, PresentationTraceSources.TraceLevel=High}" /> ``` ### 5. 使用 `ItemsSource` 和 `DataContext` 的区别 `ItemsSource` 是用于绑定集合数据的属性,而 `DataContext` 是控件的上下文对象,通常用于绑定单个对象或整个视图模型。如果将 `DataContext` 设置为 `List<EnumProductCodeType>`,仍然需要设置 `ItemsSource` 来绑定到具体的集合: ```xml <ComboBox DataContext="{Binding Source={StaticResource person}}" ItemsSource="{Binding}" /> ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值