【问题标题】:How to change background color of a cell when it is double clicked?双击单元格时如何更改单元格的背景颜色?
【发布时间】:2013-12-11 05:53:52
【问题描述】:

代码:

<Grid>
    <telerik:RadGridView x:Name="HierarchialGridView" AutoGenerateColumns="False">
        <telerik:RadGridView.Columns>
            <telerik:GridViewDataColumn DataMemberBinding="{Binding Id}" Header="Id" />
            <telerik:GridViewDataColumn DataMemberBinding="{Binding Name}" Header="Name" />
        </telerik:RadGridView.Columns>
    </telerik:RadGridView>
</Grid>

现在双击单元格后会显示默认的白色。 XAML代码中双击单元格的背景颜色如何实现?

【问题讨论】:

    标签: .net wpf xaml c#-4.0 radgridview


    【解决方案1】:

    如果您想在 xaml 中执行此操作,我认为您至少需要重新模板化网格或单元格。

    但是,如果您可以接受一些代码隐藏:

    • 为 RadGrid 的 MouseDoubleClick 事件添加和处理程序

    然后:

    private void RadGridView_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
         FrameworkElement originalSender = e.OriginalSource as FrameworkElement;
         if (originalSender != null)
         {
              var cell = originalSender.ParentOfType<GridViewCell>();
              if (cell != null)
              {
                  cell.Background = new SolidColorBrush(Colors.Red);
              }
         }
    }
    

    编辑:

    订阅PreparedCellForEdit 活动并:

    private void RadGridView_PreparedCellForEdit(object sender, GridViewPreparingCellForEditEventArgs e)
    {
        var editingControl = e.EditingElement as Control;
        if(editingControl !=null)
           editingControl.Background = new SolidColorBrush(Colors.Red);
    
    }
    

    【讨论】:

    • 我使用了这段代码并进行了测试,但在编辑模式下双击一个单元格时,该单元格只有白色。如果我点击其他单元格,我点击的上一个单元格是变成红色..但我希望当前编辑单元格的背景应该是红色..谢谢
    猜你喜欢
    • 2020-04-28
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2011-09-24
    • 2013-04-12
    • 2021-10-31
    相关资源
    最近更新 更多