【发布时间】:2021-03-04 23:45:57
【问题描述】:
我在 Visual Studio 的主窗口 XAML 上收到 XLS1106“DataContext is not set”消息。据我所知,我没有使用任何与此相关的东西,也没有任何损坏。我会屏蔽该消息,但我不确定它为什么会出现。
这是我的整个 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>
【问题讨论】:
-
将
DataContext = this;添加到 xaml.cs 中的构造函数。顺便说一句,我不确定,最初的原因是什么。也许代码分析器会警告你。它看起来像警告而不是错误。学习一些关于数据绑定的知识,它是 WPF 的一个很酷的特性。 -
@aepot Perfect,修复了消息。我仍然不确定为什么会这样。
-
如果没有数据绑定,您将无法按预期使用 WPF。在 xaml.cs 中编写代码不是一件事情(用这种方式制作软件太难了)。还有一些关于 MVVM 编程模式的阅读可以向你展示一些新的和明确有用的东西。
DataContext会成为你的好朋友。 :)
标签: c# wpf visual-studio datacontext