Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';System.Reflection.TargetingException';发生在PresentationFramework.dll中_C#_.net_Wpf - Fatal编程技术网

C# ';System.Reflection.TargetingException';发生在PresentationFramework.dll中

C# ';System.Reflection.TargetingException';发生在PresentationFramework.dll中,c#,.net,wpf,C#,.net,Wpf,好吧,我有点奇怪的虫子 这很好: private void radioButtonNormalPoint_Checked(object sender, RoutedEventArgs e) { //comboBoxNormalPoint.SelectedIndex = 0; //ellipsePoint.Fill = System.Windows.Media.Brushes.Black; } 这将抛出系统.Reflection.TargetInvocationException:

好吧,我有点奇怪的虫子

这很好:

private void radioButtonNormalPoint_Checked(object sender, RoutedEventArgs e)
{
   //comboBoxNormalPoint.SelectedIndex = 0;
   //ellipsePoint.Fill = System.Windows.Media.Brushes.Black;
}
这将抛出
系统.Reflection.TargetInvocationException

private void radioButtonNormalPoint_Checked(object sender, RoutedEventArgs e)
{
   comboBoxNormalPoint.SelectedIndex = 0;
   ellipsePoint.Fill = System.Windows.Media.Brushes.Black;
}

而且,它不允许我调试它;它在程序加载时崩溃。如果我把一个断点放在任何它没有命中的地方;它只是立即出错。

事件可能是在元素完全加载或引用尚未设置之前引发的,因此会出现异常。如果引用不为
null
已加载
true

请仅尝试设置属性。我认为,如果您声明了一个实现INotifyPropertyChanged的属性,然后选中数据绑定
选择索引(使用IValueConverter)和
填充
,则问题会少一些(使用IValueConverter)切换到它,而不是使用选中事件切换
SelectedIndex
Fill
如果radiobutton选中事件发生在窗口内容完全加载之前,即椭圆完全加载之前,则会引发此类异常。因此,请检查是否加载了窗口的UI(可能是由Window_ContentRendered事件等引起的)。

若要诊断此问题,请将导致TargetInvocationException的代码行放在try块内

若要解决此类错误,请获取内部异常。这可能是由于许多不同的问题造成的

try
{
    // code causing TargetInvocationException
}
catch (Exception e)
{
    if (e.InnerException != null)
    {
    string err = e.InnerException.Message;
    }
}

这通常是由于试图处理空对象造成的。 例如,尝试清空空的可绑定列表将触发异常:

public class MyViewModel {
    [BindableProperty]
    public virtual IList<Products> ProductsList{ get; set; }

    public MyViewModel ()
    {
        ProductsList.Clear(); // here is the problem
    }
}

记录InnerException和堆栈跟踪。您必须注释掉这两行,对吗?或者崩溃只发生在第一行?SelectedINdex=0。它是任何行(即使我只声明一个变量int i=0;,也无所谓),并且内部异常为null,但在弹出的未处理异常中(因为我无法捕获它)它表示附加信息:调用的目标已引发异常。它可能是事件处理程序连接。请告诉我将事件连接到何处。如果可能,请在后面的代码中执行此操作。导致此错误的原因是,单选按钮在加载时已被选中,并尝试将值分配给combobox。selectedindex未被选中未加载yet@JustinKirk:正如我所预料的:)在我的例子中,我复制并粘贴了一个文本框,其中一个函数在引用自身的TextChanged上触发。我忘记更改第二个框的函数目标,因此它发现另一个文本框仍然为空时就死了。
if (ProductsList!= null) ProductsList.Clear();