WindowsBase.dll中出现'System.InvalidCastException'类型的第一次机会异常

Joh*_*son 6 c# wpf casting listbox equality

我将ListBox的ItemsSource绑定到一个时遇到此异常ObservableCollection<object>.

该集合填充了{DependencyPropertyChangedEventArgs,EventEntry}

我偷看DependencyPropertyChangedEventArgs并发现:

public struct DependencyPropertyChangedEventArgs
{
    ...
    public override bool Equals(object obj)
    {
        return this.Equals((DependencyPropertyChangedEventArgs)obj); <- huge cast right here?
    }
}
Run Code Online (Sandbox Code Playgroud)

EventEntry的代码:

public class EventEntry
{
    public EventEntry(string name)
    {
        Name = name;
    }
    public string Name { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

当我阅读偷看的代码时,它被设计为爆炸.

这是正确的吗?

Joh*_*son 0

已确认的错误,重现:

[Test]
public void Repro()
{
    var args = new DependencyPropertyChangedEventArgs(UIElement.IsEnabledProperty, false, true);
    Assert.Throws<InvalidCastException>(() => args.Equals(1));
}
Run Code Online (Sandbox Code Playgroud)

已确认实施中的错误:(以下代码来自参考源)

public override bool Equals(object obj)
{
    return Equals((DependencyPropertyChangedEventArgs)obj);
}
Run Code Online (Sandbox Code Playgroud)

在 Connect 上提交了一个错误