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)
当我阅读偷看的代码时,它被设计为爆炸.
这是正确的吗?
已确认的错误,重现:
[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)