在事件中使用具有自定义参数的委托

用户名

我有如下代码。我遇到的问题是这部分代码给出了编译错误。

Changed(this, new ListChangedEventArgs(Operation.Add, e.Value, 1));

错误1使用通用类型'CustomDatastructures.Core.ListChangedEventArgs'需要1个类型参数

第二个问题是如何调用onChanged方法。


//public delegate void ListChanged<TEventArgs>(object sender, TEventArgs e);
public delegate void BeforeListChanged<TEventArgs>(object sender, TEventArgs e);
public delegate void ListChanged<TEventArgs>(object sender, TEventArgs e);

// Make this class generic by adding a type-parameter to the class
public class ObservableList<T> : IEnumerable<T>
{
    // Declare an private variabel to work as 
    // the internal data storage for the list
    List<T> observerList = new List<T>();

    public event ListChanged<ListChangedEventArgs<T>> Changed;
    //public event BeforeListChanged<T> BeforeChanged;

    protected virtual void OnChanged(object sender, Operation op, T value, int count)
    {
        if (Changed != null)
            Changed(this, new ListChangedEventArgs(op, value, count));
    }



    /// <summary>
    /// Add and object to the list
    /// </summary>
    /// <param name="item">An object</param>
    public void Add(T item)
    {
        observerList.Add(item);
        OnChanged(this, Operation.Add, item, 1);
    }

这是ListChangedEvent类的定义

public class ListChangedEventArgs<T> : EventArgs
{
public int Count { get; }
public Operation Operation { get; }
public T Value { get; }
public ListChangedEventArgs(Operation operation, T value, int count)
}
PVitt

您要声明您ObservableCollection的类型T此收藏有一个活动ListChanged<T>但是您将此事件称为ListChanged<ListChangedEventArgs<T>>因此,您必须更改事件的声明:

public event ListChanged<ListChangedEventArgs<T>> Changed;
protected virtual void OnChanged(object sender, ListChangedEventArgs<T> e)
{
    if (Changed != null)
        Changed(this, e);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用具有不同高度的自定义委托时,QListView无法正确调整行高

来自分类Dev

如何在Highcharts中使用具有默认打印选项的自定义下载按钮?

来自分类常见问题

如何在iOS7中使用具有动态文本大小的自定义字体

来自分类Dev

是否可以在字典中使用具有自定义tableViewCell的非静态tableView的特定键

来自分类Dev

使用具有多个参数的@objc委托方法

来自分类Dev

在Rails中使用具有has_many的委托?

来自分类Dev

我应该在React JS中使用自定义事件委托吗

来自分类Dev

使用自定义委托时检查事件处理程序是否有任何订阅者

来自分类Dev

使用自定义委托时,检查是否有事件处理程序的订阅者

来自分类Dev

在prepareForSegue中使用自定义init(带有参数)

来自分类Dev

使用具有自定义客户端登录页面的IdentityServer登录

来自分类Dev

使用具有自定义功能的ddply + mutate吗?

来自分类Dev

使TextView使用具有不同样式(常规和斜体)的自定义字体

来自分类Dev

Python使用具有自定义全局变量的exec

来自分类Dev

使用具有自定义功能接口的流

来自分类Dev

元帅无法使用具有自定义大小的枚举字段的结构

来自分类Dev

使用具有自定义数据类型的async_work_group_copy

来自分类Dev

在Google Apps脚本上使用具有自定义功能的触发器

来自分类Dev

使TextView使用具有不同样式(常规和斜体)的自定义字体

来自分类Dev

使用具有自定义功能接口的流

来自分类Dev

使用具有自定义延迟的 javascript 在循环中动态更改包装器背景

来自分类Dev

使用具有自定义格式的时刻格式化日期

来自分类Dev

具有自定义类的C#动作委托

来自分类Dev

具有ContainerView的UIViewController的自定义委托

来自分类Dev

具有自定义参数的QAction

来自分类Dev

使用具有自定义类型的Generic.List作为函数的返回类型不起作用

来自分类Dev

如何使用具有Openai稳定基线RL算法的自定义Openai体育馆环境?

来自分类Dev

使用具有自定义DNS服务器的专用网络无法从Azure容器实例访问网站

来自分类Dev

适用于iOS的Firebase Analytics-具有预定义事件的自定义参数(Swift)

Related 相关文章

  1. 1

    使用具有不同高度的自定义委托时,QListView无法正确调整行高

  2. 2

    如何在Highcharts中使用具有默认打印选项的自定义下载按钮?

  3. 3

    如何在iOS7中使用具有动态文本大小的自定义字体

  4. 4

    是否可以在字典中使用具有自定义tableViewCell的非静态tableView的特定键

  5. 5

    使用具有多个参数的@objc委托方法

  6. 6

    在Rails中使用具有has_many的委托?

  7. 7

    我应该在React JS中使用自定义事件委托吗

  8. 8

    使用自定义委托时检查事件处理程序是否有任何订阅者

  9. 9

    使用自定义委托时,检查是否有事件处理程序的订阅者

  10. 10

    在prepareForSegue中使用自定义init(带有参数)

  11. 11

    使用具有自定义客户端登录页面的IdentityServer登录

  12. 12

    使用具有自定义功能的ddply + mutate吗?

  13. 13

    使TextView使用具有不同样式(常规和斜体)的自定义字体

  14. 14

    Python使用具有自定义全局变量的exec

  15. 15

    使用具有自定义功能接口的流

  16. 16

    元帅无法使用具有自定义大小的枚举字段的结构

  17. 17

    使用具有自定义数据类型的async_work_group_copy

  18. 18

    在Google Apps脚本上使用具有自定义功能的触发器

  19. 19

    使TextView使用具有不同样式(常规和斜体)的自定义字体

  20. 20

    使用具有自定义功能接口的流

  21. 21

    使用具有自定义延迟的 javascript 在循环中动态更改包装器背景

  22. 22

    使用具有自定义格式的时刻格式化日期

  23. 23

    具有自定义类的C#动作委托

  24. 24

    具有ContainerView的UIViewController的自定义委托

  25. 25

    具有自定义参数的QAction

  26. 26

    使用具有自定义类型的Generic.List作为函数的返回类型不起作用

  27. 27

    如何使用具有Openai稳定基线RL算法的自定义Openai体育馆环境?

  28. 28

    使用具有自定义DNS服务器的专用网络无法从Azure容器实例访问网站

  29. 29

    适用于iOS的Firebase Analytics-具有预定义事件的自定义参数(Swift)

热门标签

归档