c# - 在设计时确定 WPF 控件的 DataContext

标签 c# wpf xaml mvvm

如何在 WPF 应用程序的设计时确定特定控件的 DataContext

DataContext 可能在 XAML 中专门设置、继承或在代码中的某处设置,有时很难在设计时弄清楚绑定(bind)指的是哪个类。

我通常尝试查找 DataContext 类是在 VS 中搜索绑定(bind)名称。例如,我看到绑定(bind)类似于

ItemSource = {Binding Items}

...我将搜索文本“Items”以便上课,但 VS 有时无法找到搜索到的文本(我在解决方案中有几个项目)。

最佳答案

我想为 StepUp 的 list 添加一种方法:

设计实例:

就像您可以定义运行时数据上下文一样,您可以通过以下方式添加专门用于设计时的数据上下文:

    <Usercontrol    x:Class="MyUserControl"  
                    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:viewModels="clr-namespace:MyProject.ViewModels"
                    d:DataContext="{d:DesignInstance viewModels:MyViewModel}"
                    d:DesignHeight="300"
                    d:DesignWidth="600"
                    mc:Ignorable="d">
    </UserControl>

然后,在 Visual Studio 中,您可以将 IntelliSense 用于可绑定(bind)属性,如果您的 View 模型具有简单甚至无参数的构造函数,它将在设计器中创建,您无需启动应用程序即可测试触发器或转换器。

关于c# - 在设计时确定 WPF 控件的 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36493317/

相关文章:

c# - 为项目还原 NuGet 包失败... : Could not find a part of the path

c# - 在VS2010中格式化每个C#代码文件?

wpf - 为什么格式错误的 XAML 似乎编译然后在运行时失败?

c# - 如何使用 "if statement"wpf 禁用日期选择器

c# - 将数据从 Excel 文件传输到 MySQL 表

c# - 在 C# 中循环访问字符串中单个字符的最快方法是什么?

c# - 让 XamlReader.Load 忽略未知的 xml 而不是崩溃?

wpf - 应用 CollectionView 筛选器后如何绑定(bind) DataGrid 行计数?

c# - Xamarin.Forms MVVM TapGestureRecognizer

wpf - WPF 样式中 IsMouseOver 和 IsHighlighted 的区别