我在这里读到 Sender 在事件处理程序中永远不应该为空(Konrad Rudolph对“处理 NULL 的最佳方式”的回答)。
但是,我的事件处理程序从 WPF XAML 获得了一个空发送者。
这是 XAML:
<Storyboard x:Name="Storyboard" CurrentTimeInvalidated="StoryboardChanged">
在主窗口中,这是事件处理程序:
private void StoryboardChanged(object sender, EventArgs e)
{
try
{
#region VerifyInputs
Validator.Verify(sender); <------------------- aborts on null
所以,我的问题是: 我应该如何修复我的 XAML 以便 WPF 发送一个非空的“发件人”值?
编辑:用我不假思索的 Validator.Verify 复制/粘贴来解决问题的应用程序。这个方法只是检查参数是否为空:
public static void Verify(Object theObj) { if (theObj == null) { string errMsg = "theObj is null"; Debug.Assert(theObj != null, errMsg); throw new ApplicationException(errMsg); } }
编辑:
中止,中止,中止
对不起。发件人不为空,e 为
:(