【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");
            }
        }

 

posted @ 2021-01-26 13:30  不溯流光  阅读(1051)  评论(0编辑  收藏  举报