Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 如何调试一个";DependencyProperty.UnserValue“;我的WPF/MVVM应用程序中是否存在异常?_C#_Wpf_Xaml_Mvvm - Fatal编程技术网

C# 如何调试一个";DependencyProperty.UnserValue“;我的WPF/MVVM应用程序中是否存在异常?

C# 如何调试一个";DependencyProperty.UnserValue“;我的WPF/MVVM应用程序中是否存在异常?,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有一个C#/.Net/WPF/MVVM应用程序 在VS 2015中运行时,应用程序运行良好 当我独立运行应用程序时(在不同的机器上), 我在启动时遇到以下异常: “System.InvalidOperationException”类型的未处理异常 发生在WindowsBase.dll中 附加信息“{DependencyProperty.UnserValue}不是有效的 属性“TopLevelItemTemplateKey”的值 到底发生了什么 如何调试这个 谢谢您是否在获取依赖项时直接返回您的

我有一个C#/.Net/WPF/MVVM应用程序

在VS 2015中运行时,应用程序运行良好

当我独立运行应用程序时(在不同的机器上), 我在启动时遇到以下异常:

“System.InvalidOperationException”类型的未处理异常 发生在WindowsBase.dll中

附加信息“{DependencyProperty.UnserValue}不是有效的 属性“TopLevelItemTemplateKey”的值

到底发生了什么

如何调试这个


谢谢

您是否在获取依赖项时直接返回您的值?最好的方法是在返回变量之前测试变量是否为空。这里是一个带有
ObservableCollection的示例

public ObservableCollection<YourObject> _ocYourObject;
    public ObservableCollection<YourObject> ocYourObject{
        get {
            if (_ocYourObject == null) {
                _ocYourObject = new ObservableCollection<YourObject>();
            }
            return _ocYourObject;
        }
        set {
            if (_ocYourObject!= value) {
                _ocYourObject= value;
                PropertyChanged(this, new PropertyChangedEventArgs(nameof(ocYourObject)));
            }
        }
    }
公共可观察收集对象;
公共可观测收集对象{
得到{
如果(_=null){
_OciourObject=新的ObservableCollection();
}
返回(u)对象;;
}
设置{
if(_ocYourObject!=值){
_对象=值;
PropertyChanged(这是新的PropertyChangedEventArgs(名称)(ocYourObject));
}
}
}

Safe:当我在VS调试器中时,这似乎很奇怪。我有几个可观察的集合。我会检查并更改它们,看看是否解决了它。这可能会发生在任何对象上。你应该使用log4net之类的日志框架来记录异常,看看哪一行是错误安全的:完全忘记了log4net.Thx,我将在log4net中添加。看看绑定到
TopLevelItemTemplateKey
属性的内容。我猜它可能是您注册的依赖性属性,没有默认值。在这种情况下,只需向元数据添加默认值:
DependencyProperty.Register(“State”、typeof(Boolean)、typeof(MyStateControl),新属性元数据(false));