none
在继承DataGridTextColumn类的类中,如何实现根据绑定数据源自定义显示内容,以及自定义双击编辑方式? RRS feed

  • 问题

  • 我想编写一个继承于DataGridTextColumn类的类,目的是为一些特殊的属性设置自定义显示和双击编辑方式,想通过继承DataGridTextColumn控件来实现。至少想实现下列两个功能

    1.自定义根据绑定数据源决定的的显示内容(比如绑定一个bool类型,若是false则显示指定扩展的属性A的内容,若是false,就显示另一个扩展的属性B的内容),(不用值转换器)

    2.消除默认的双击事件编辑方式,自定义双击编辑方式,并且还能设置引发所属的DataGrid的BeginningEdit和CellEditEnding事件。(例如双击时,不出现输入框,而是调用内部扩展的自定义方法,根据一些属性配置进行相应修改,在方法内引发所属的DataGrid的BeginningEdit和CellEditEnding事件,并且更新绑定数据源)

    上述两个说明归纳起来就是,我想实现一个根据内部的自定义的属性实现值转换功能的DataGridTextColumn,想通过继承DataGridTextColumn实现,显示时不直接显示数据源的内容,而是调用内容自定义的值转换方法转换数据源在显示,双击时直接调用内部自定义方法,修改显示内容和绑定数据源,请问有这种样例或者怎么弄?





    2019年9月18日 15:02

全部回复

  • 你说的太过于笼统了。

    条件一:请给出数据和数据限制范围。

    条件二:请给出内部拓展自定义方法或者方法内容以及自定义双击编辑方式


    • 已编辑 ARM830 2019年9月19日 1:44
    2019年9月19日 1:42
  • 你说的太过于笼统了。

    条件一:请给出数据和数据限制范围。

    条件二:请给出内部拓展自定义方法或者方法内容以及自定义双击编辑方式



    第一,我其实想知道的是DataGridTextColumn最终将数据显示之前的是那个方法是哪个,我想扩展那个方法,增加自己定义的值转换功能的方法在里面,将原本DataGridTextColumn显示的值,在继承的DataGridTextColumn类中,调用自己的方法进行转换处理另外的值进行显示

    第二,双击单元格事件不触发默认的编辑操作,而是在双击单元格引发的事件内,直接调用自定义内部的方法,将展示的数据转换成另外的,并返回给绑定数据源,还能设置引发BeginningEdit和CellEditEnding事件,那么DataGridTextColumn中双击单元格调用的方法是哪个?。

    归纳起来就是,我想实现一个根据自定义的属性实现值转换功能的DataGridTextColumn,


    2019年9月19日 6:17
  • 第一点应该可以设置一个值转换器实现吧,DataGridTextColumn里面应该没法对数据进行操作吧

    public class BoolToBrushConvert : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                string reValue = System.Convert.ToString(value);
                if (reValue == "true")
                {
                    return "1";
                }
                else
                {
                    return "2";
                }
            }
    
      
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                string strValue = value.ToString();
                return value;
            }
        }

    Best Regards,

    Alex


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年9月24日 7:52
    版主