问题描述
我在 Visual Studio 的主窗口 XAML 上收到 XLS1106“未设置 DataContext”消息。据我所知,我没有使用任何与此相关的东西,也没有任何损坏。我只想压制这条消息,但我不确定它为什么会在那里。
这是我的整个 XAML:
<Window x:Name="MyWindow" x:Class="whiteboard.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:whiteboard"
mc:Ignorable="d"
Title="Untitled - CFwhiteboard" Height="450" Width="800" MouseDown="WindowMouseDown" MouseMove="WindowMouseMove" KeyDown="WindowKeyDown" KeyUp="WindowKeyUp" Icon="icons8-interactive-whiteboard-100.png" Loaded="WindowLoaded" Closing="WindowClosing">
<Window.Resources>
<ResourceDictionary>
<FrameworkElement x:Key="CursorRectangle" Cursor="Resources/Cursors/rectangle.cur"/>
<FrameworkElement x:Key="CursorSquare" Cursor="Resources/Cursors/lockrect.cur"/>
<FrameworkElement x:Key="CursorEllipse" Cursor="Resources/Cursors/ellipse.cur"/>
<FrameworkElement x:Key="CursorCircle" Cursor="Resources/Cursors/lockellipse.cur"/>
</ResourceDictionary>
</Window.Resources>
<Canvas x:Name="MainCanvas"/>
</Window>
解决方法
该消息是误报。 Visual Studio 的最新预览版中提供了该问题的修复程序:
Microsoft 解决方案 - Bhavya Udayashankar [MSFT] 已关闭 - 已修复···
已发布针对此问题的修复程序!安装来自 https://visualstudio.microsoft.com/downloads/ 的最新预览版本。感谢您提供有助于改进产品的宝贵反馈。
请参阅 Visual Studio 开发人员社区网站上的问题 "XLS1106 on virgin C# WPF .Net application"。
在没有设置任何数据绑定的最简单的应用程序中,不需要设置数据上下文,并且可以安全地忽略给出的警告。
请注意,对于实际应用程序,您应该不要遵循上述评论的建议,告诉您将 DataContext = this;
添加到窗口的构造函数中。编写正确的视图模型对象类型,并创建一个实例以设置为您的 DataContext
引用。