【WPF】调试问题汇总
一、命名空间“aaa”中不存在“bbb”名称
直接点“生成解决方案”就好了,别点”重新生成解决方案“
VS日常抽风。
二、无法找到名为“xxx”的资源。资源名称区分大小写
如果确定这个资源没问题,那看一下项目中资源加载顺序。如果xxx这个资源的引用在声明之前则会抛异常。
调换一下顺序即可解决。
三、对类型“xxx.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常
异常信息:
System.Windows.Markup.XamlParseException
对类型“xxx.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常。
一般出现System.Windows.Markup.XamlParseException的错误是由:
1.dll库加载错误,查询一下你程序中引用的dll你是否加载并引用到程序内。
2.程序中引用的文件(txt、ini、xml等文件的引用路径是否写对)
3.根据详细信息,一般查看异常的详细信息,其InnerException显示出的错误先修改,修改完这个错误就消失了。
4.针对出现错误的行列和提示信息去查看属性是否真的出现问题,有时候对不同的数据格式有要求。
实际解决方法会有不同,最关键还是要查看InnerException里的错误信息针对性地去修改。
例如InnerException提示:
System.IO.FileNotFoundException
未能加载文件或程序集“xxx.dll”或它的某一个依赖项。找不到指定的模块。":"xxx.dll"
就能知道是去检查这个dll了,不至于大海捞针。其他很多问题也可以这样解决。
四、安装MvvmLight框架,提示: “MvvmLightLibs”已拥有为“CommonServiceLocator”定义的依赖项
工具--扩展和更新--更新--找到NuGet包管理器,点击更新
下载按理说不会太慢,五六分钟左右。
然后点立即重启VS,新建MvvmLight项目就正常了。
PS:
实践证明,如果太慢的话可能网络上有点问题,不要花时间让它在那下载了,可以换个时间再下。
(网上提供的这个解决下载慢的问题的方法都没什么用)
五、未能加载文件或程序集“XXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项
更换一下项目属性为X86试试。
六、已经添加xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"但依旧提示未找到类型“ed:Arc”
注意要添加程序集Microsoft.Expression.Drawing的引用。
七、数据源绑定的List已更新但UI界面未刷新
(1)尝试使用ObservableCollection定义数据源
//private List<MyCommand> _commands = new List<MyCommand>(); //public List<MyCommand> Commands //{ // //方式1:无法刷新UI // //get { return _commands; } // //方式2:无法刷新UI // get // { // if (_commands == null) // { // _commands = new List<MyCommand>(); // } // return _commands; // } // set // { // _commands = value; // OnPropertyChanged("Commands"); // } //} private ObservableCollection<MyCommand> _commands = new ObservableCollection<MyCommand>(); public ObservableCollection<MyCommand> Commands { get { return _commands; } set { _commands = value; OnPropertyChanged("Commands"); } }