gpt4 book ai didi

c# - 为什么我的 "Event"总是空的?

转载 作者:太空狗 更新时间:2023-10-29 18:03:43 28 4
gpt4 key购买 nike

我正在尝试连接一个新事件,但出于某种原因,“已更改”总是评估为空

    public class MyTreeViewItem : INotifyPropertyChanged

{
private MyTreeViewItem _parent;

public MyTreeViewItem(MyTreeViewItem parent)
{
_parent = parent;
}

private bool _checked;
public bool Checked
{
get
{
return _checked;
}
set
{
if (value != _checked)
{
_checked = value;
OnChanged("test");
OnPropertyChanged("Checked");
}
}
}

public event EventHandler Changed;

public ObservableCollection<MyTreeViewItem> Children { get; set; }

// Invoke the Changed event; called whenever list changes
protected virtual void OnChanged(string test)
{
if (Changed != null)
Changed(this, null);
}

订阅代码(PropertyChanged 有效,Changed 无效)

_playgroupTree = new MyTreeViewItem(null);
AddChildNodes(4, ref _playgroupTree);
_playgroupTree.Changed += new EventHandler(_playgroupTree_Changed);
_playgroupTree.PropertyChanged += new PropertyChangedEventHandler(_playgroupTree_PropertyChanged);

真的很奇怪,因为我也在实现 INotifyPropertyChanged(有效),并且这段代码几乎完全相同(我尝试使用相同的委托(delegate)类型,但仍然无效。

我一直在使用这个网站作为引用 http://msdn.microsoft.com/en-us/library/aa645739%28VS.71%29.aspx

最佳答案

好吧,您还没有显示任何订阅该事件的代码。你在哪里有这样的代码:

YourClass yc = new YourClass();
yc.Changed += SomeHandler;

?如果您可以编写一个简短但完整 的程序来演示问题,那么诊断起来就会容易得多。

关于c# - 为什么我的 "Event"总是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3497317/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com