提问人:Johan Larsson 提问时间:5/11/2014 最后编辑:Johan Larsson 更新时间:5/11/2014 访问量:838
WindowsBase.dll 中发生“System.InvalidCastException”类型的第一次机会异常
A first chance exception of type 'System.InvalidCastException' occurred in WindowsBase.dll
问:
在将 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?
}
}
EventEntry 代码:
public class EventEntry
{
public EventEntry(string name)
{
Name = name;
}
public string Name { get; private set; }
}
当我阅读窥视代码时,它被设计为爆炸。
这是对的吗?
答:
0赞
Johan Larsson
5/11/2014
#1
已确认的错误,重现:
[Test]
public void Repro()
{
var args = new DependencyPropertyChangedEventArgs(UIElement.IsEnabledProperty, false, true);
Assert.Throws<InvalidCastException>(() => args.Equals(1));
}
public override bool Equals(object obj)
{
return Equals((DependencyPropertyChangedEventArgs)obj);
}
评论
0赞
Johan Larsson
5/11/2014
这并不意味着答案,更多信息。如果我知道怎么做,应该让它成为 wiki。
评论