【问题标题】:"DataContext is not set" message on main window主窗口上的“DataContext is not set”消息
【发布时间】: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


【解决方案1】:

消息是误报。 Visual Studio 的最新预览版中提供了该问题的修复:

Microsoft 解决方案 - Bhavya Udayashankar [MSFT] 已关闭 - 已修复···

已发布此问题的修复程序!从https://visualstudio.microsoft.com/downloads/ 安装最新的预览版。感谢您提供有助于改进产品的宝贵反馈。

请参阅 Visual Studio 开发人员社区网站上的问题 "XLS1106 on virgin C# WPF .Net application"

在没有设置任何数据绑定的最简单的应用程序中,不需要设置数据上下文,并且可以安全地忽略给出的警告。

请注意,您应该遵循上述评论的建议,告诉您将DataContext = this; 添加到实际应用程序的窗口构造函数中。编写适当的视图模型对象类型,并创建一个实例以设置为您的 DataContext 引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-27
    相关资源
    最近更新 更多