如何区分报错消息来自ReSharper还是Visual Studio 附XAML绑定报错案例
区分XAML绑定报错来源的方法
- 查看报错标识:ReSharper报的XAML绑定错误,代码左侧会附带带R字样的专属图标,波浪线样式也和VS原生有区别;VS原生报错不会携带R标识。
- 查看错误列表来源:打开VS的「错误列表」面板,找到对应报错条目,「来源」列标注为ReSharper的就是ReSharper报的,标注为「XAML」「编辑」的就是VS原生报错。
- 临时禁用ReSharper验证:按快捷键
Ctrl+Shift+Alt+8快速关闭ReSharper的实时代码分析,若报错消失则为ReSharper触发,反之则为VS原生报错。
当前问题补充排查方案
你遇到的是设计时数据上下文的成员未找到报错,可先排查以下两点:
- 确认
ClustersManagementTabDesignViewModel类中存在公共非静态的SelectedItem、ItemsCollection属性,需要双向绑定的属性必须同时包含get和set访问器。 - 确认设计时实例配置正确,若需要实际实例化视图模型做设计时验证,可在
DesignInstance配置中补充IsDesignTimeCreatable=True参数:
d:DataContext="{d:DesignInstance Type=clusters:ClustersManagementTabDesignViewModel, IsDesignTimeCreatable=True}"
对应报错截图

关联XAML代码
<UserControl x:Class="ClustersManagementTabAdapterView" xmlns:clusters="clr-namespace:Clusters" d:DataContext="{d:DesignInstance Type=clusters:ClustersManagementTabDesignViewModel}" mc:Ignorable="d" Background="White"> <telerik:RadGridView SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding ItemsCollection, Mode=OneWay}"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="Nome Cluster" DataMemberBinding="{Binding ClusterName}" Width="auto"/> </telerik:RadGridView.Columns> </telerik:RadGridView> </UserControl>
内容的提问来源于stack exchange,提问作者Revious
相关产品推荐
相关产品推荐

