我应该在哪里设置 DataContext - 代码隐藏或 xaml?

2023-12-22

(老实说,我搜索并阅读了所有似乎相关的“相关问题” - 我确实希望我没有“错过”其他地方的这个问题,但这里是......)

(至少)有两种不同的方法来设置 DataContext。可以使用 XAML,也可以使用隐藏代码。

什么是“最佳实践”?为什么?

我倾向于在 XAML 中设置它,因为它允许设计者自己定义集合,但我需要“弹药”来解释为什么它是最佳实践,或者为什么我很疯狂,而背后的代码是炸弹......


您可能会考虑的第三种方法是使用定位器服务。我通常有一个类负责创建我的所有 DataContext(在大多数情况下对我来说是 VM),并且我在 App.xaml 资源中创建该类的一个实例。然后,我在每个单独页面的 XAML 中绑定 DataContext。

i.e.

<Page DataContext="{Binding ViewModel,Source={StaticResource Locator}}" >
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该在哪里设置 DataContext - 代码隐藏或 xaml? 的相关文章

  • Google 使用折线和标记绘制地图性能

    我们正处于决策点 哪种技术将用于我们的高负载航班优惠地图 有一个简单的测试 http buruki com gmap http buruki com gmap但如果我选择伦敦或莫斯科 他们有约 200 300 个航班目的地 大多数浏览器 当
  • 网格内的 ContentPresenter 可见性绑定不起作用?

    我有以下网格
  • wp7 芒果中的 DataTemplateSelector

    我的应用程序中需要一个数据模板选择器 我发现这个博客 http www windowsphonegeek com articles Implementing Windows Phone 7 DataTemplateSelector and
  • 列表视图上的 TextBlock:如何忽略 TextBlock 中的点击并让列表视图处理它们

    我有一个显示大量信息的列表视图 但是当它为空时 我想在其上覆盖一个文本块 上面写着 没有要显示的信息 或 bla bla bla 添加信息 列表视图设置为响应鼠标单击 但现在如果我单击文本块 这些事件将路由到文本块 我怎样才能让这些事件转到
  • 比较运算符性能 <= 与 !=

    让我们首先声明代码可读性胜过微优化 我们应该将其留给编译器 这只是一个奇怪的案例 具体细节似乎与一般建议相比很有趣 因此 我在搞素数生成器函数 并提出了一种奇怪的行为 其中 人们建议效率最高 实际上效率最低 而 C private stat
  • 从 xaml 获取 RowIndex

    我有一个带有 DataGridTemplateColumns 的 DataGrid 在 TemplateColumn 中 我使用工作正常的 DataTrigger 它从 DataGrid 父级检索项目计数
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 视图中的 XamlParseException

    我有一个仅显示标签的视图 视图模型已正确注入视图中 因为标签的文本已绑定到视图模型属性 现在 如果我尝试在 xaml 中定义 DataGrid 则会出现 XamlParseException System Windows Markup Xa
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • 如何在运行时添加到 TreeView 目录

    我有一个TreeView我想允许用户添加和删除子项目 在探索基本功能时 我使用button and a textbox添加此子项 当用户点击button a new TreeViewItem需要创建并设置为我的父项的子项TreeView与t
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • WPF ListView/Gridview 允许用户选择多个项目并将它们分组在一起

    我在 MVVM 应用程序中有一个 WPF ListView GridViwe GridView 绑定到 ViewModel 中的列表 要求是用户应该能够选择网格视图的多行 右键单击它并看到上下文菜单 将这些行组合在一起 选择后 所有这些项目
  • .NET / C# / WPF 项目的命名约定

    NET C WPF 项目广泛接受的命名约定是什么 Microsoft 有一篇关于命名约定的内容广泛的 MSDN 文章here http msdn microsoft com en us library ms229002 aspx
  • 如何在wpf中翻转图像

    我最近学习了如何使用 TransformedBitmap 和 RotateTransformed 类旋转 BitmapImage 现在我可以对图像进行顺时针旋转 但如何翻转图像呢 我找不到执行 BitmapImage 水平和垂直翻转的类 请
  • 是什么导致 WPF 打印机输出被光栅化?

    我在 WPF 中遇到了许多打印问题 其中正在打印的特定项目组合会突然触发打印机输出的光栅化 导致打印机输出丑陋且庞大 并可能导致打印每页需要 30 秒 我发现在控件上设置任何级别的不透明度之类的事情通常会触发此问题 我忘记了它还有什么作用
  • 强制 IDataErrorInfo 验证

    我在某个面板上有两个控件 文本框和组合框
  • WPF根据数据类型设置样式?

    问题就在这里 我将 TreeView 与几种不同类型的对象绑定 每个对象都是一个节点 有些对象有一个名为 IsNodeExpanded 的属性 当然 有些对象则没有 这是我的风格 现在 问题是当绑定不具有此属性的项目时 我们在输出中收到此错
  • 当 AutoGenerateColumns = True 时如何重命名 DataGrid 列?

    我有一个简单的数据结构类 public class Client public String name set get public String claim number set get 我正在将其喂入DataGrid this data
  • 如何使取消按钮像“X”按钮一样工作?

    在我的 XAML 文件中 我有一个窗口 我试图将其设置为无论用户单击 X 按钮还是单击 取消 按钮 行为都是相同的 我的缩写代码如下 public partial class Dialog Window private void Windo
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re

随机推荐

  • 如何使用Xamarin Android APK的.Net Reactor混淆dll

    我是 Xamarin Android 新手 我使用 Visual Studio 2015 社区版创建了一个应用程序 我已将解决方案配置设置为发布 为了进行混淆 我使用了 Net Reactor 这就是我试图混淆的方式 1 构建应用程序后 我
  • Common-Lisp 以函数格式打印制表符

    我希望打印制表符format功能 我可以通过以下方式实现这一点 C然后放置 tab作为格式的参数 但这似乎有点冗长 因为对于换行符 可以简单地放置一个 在字符串中 使用打印标签最常用的做法是什么format功能 感谢您的帮助 中没有制表符的
  • 在 CrossWalk 中迁移 Cordova 应用程序时出错

    我在尝试着迁移科尔多瓦应用程序 in 人行横道 using 命令行工具如中给出的this https crosswalk project org documentation cordova migrate an application ht
  • 在编译时计算一组常量表达式的最大值

    我试图在 Rust 过程宏 派生宏 内的编译时计算一组常量的最大值 该宏看起来像 fn get max len gt TokenStream Each TokenStream represents a constant expression
  • 有关 mod_rewrite 和 mod_redirect 的帮助

    我的 htaccess 文件是 Redirect 301 http domain com news articles dtMain start 150 http domain com news articles Redirect 301 h
  • 如何使用 pandas read_xml API 读取大型 xml 文件?

    我正在尝试读取一个大的 XML 文件 文件大小约为 84 GB 来自 Post xml 的堆栈溢出数据转储 我注意到有 Pandas API pandas read xml link https pandas pydata org pand
  • 为什么内存块没有被垃圾收集器清理?

    package main import fmt net http runtime func handler w http ResponseWriter r http Request largeMemAlloc make int 100000
  • 创建具有像单例模式一样的可重用性的 CSOM ClientContext

    我在不同的用户操作上调用了多种方法客户端上下文 在每个方法执行上创建它都会导致性能问题 所以我将其添加为静态变量以实现可重用性 性能平均提高了 5 秒 但随后在某些方法中它开始给出随机问题 版本冲突 on 执行查询 但如果我删除静态和空检查
  • 将 GoDaddy 裸域添加到 Heroku 应用程序

    Heroku 自定义域 https devcenter heroku com articles custom domains 我已经设置了two我的 Heroku 应用程序的自定义域 example com example com hero
  • 在 PyTorch 中实现“无限循环”数据集和数据加载器

    我想实现一个无限循环数据集和数据加载器 这是我尝试过的 class Infinite Dataset def len self return HPARAMS batch size return 1 lt lt 30 This causes
  • sprintf 代表什么?

    我尝试在谷歌和维基百科上查找 但找不到答案 有谁知道 sprintf 或 printf 代表什么 是某个东西的缩写吗 Thanks 字符串打印格式 ed IE 使用给定格式打印到字符串
  • 使用匿名类型集合填充 WPF 中的 DataGrid

    我正在使用匿名类型的集合填充数据网格 我正在设置DataGrid s DataContext财产 并且没有错误 数据网格中没有显示任何内容 我尝试对定义的对象集合进行相同的操作 但再次没有显示任何内容 请您指导我该怎么做 Thanks ED
  • 奇怪的“字符串索引超出范围:0”错误

    我有一个巨大的应用程序 在某些时候 当涉及重定向时 我收到了这个奇怪的错误 Caused by java lang StringIndexOutOfBoundsException with message String index out
  • 编写电子邮件嗅探器

    我有兴趣编写一个电子邮件嗅探器 将通过基于网络的客户端发送的所有电子邮件保存到高清 但我不知道如何做到这一点 如何在加密之前捕获 HTTPS 邮件 我真的很感激一些有用的信息 我在网上找不到任何信息 有一个名为 HTTP Analyzer
  • 是否有 shim 或 polyfill 可以解决 Chrome 对数据列表的 512 限制?

    使用绑定到数据列表的输入标签实现了预输入 当用户滚动浏览条目时 Chrome 不会显示第 512 个匹配项之外的任何条目 整个数据列表仅包含大约 950 个条目 使用适用于 Windows 的 Chrome 版本 76 0 3809 100
  • 在大表中查找半径MySQL(纬度经度)内的点的最快方法是什么

    目前我有几个包含 100k 行的表 我正在尝试查找如下数据 SELECT SQRT POW 69 1 latitude 49 1044302 2 POW 69 1 122 801094 longitude COS latitude 57 3
  • ng-click 和 ng-touch 移动设备

    我有一个用 AngularJS 编写的 cordova 移动应用程序 在我的应用程序中添加 ng touch 会使某些 html 行为无法正常工作 此问题的一个示例是 当复选框包装在附有 ng click 的 HTML 元素中时 该复选框不
  • 隐藏的表单元素是否被提交?

    如果 jQuery 的toggle 用于 div 包含表单元素 这些表单元素是否会随表单一起提交 即使它们是隐藏的 我的代码 尽管这个特定问题可能不需要 cms loop title click function ctg this attr
  • 使用 C 的原始 libcurl JSON PUT 请求

    我目前正在编写一个类似 REST 的客户端 只需要执行 PUT 请求 Problem 运行该程序并没有在 URL 的 API 上给出正确的结果 我不知道为什么 使用curl easy perform curl 在调用时不会抛出错误 但 UR
  • 我应该在哪里设置 DataContext - 代码隐藏或 xaml?

    老实说 我搜索并阅读了所有似乎相关的 相关问题 我确实希望我没有 错过 其他地方的这个问题 但这里是 至少 有两种不同的方法来设置 DataContext 可以使用 XAML 也可以使用隐藏代码 什么是 最佳实践 为什么 我倾向于在 XAM