在 WPF 窗口的构造函数中,InitializeComponent() 之前和之后应该做什么?

2023-11-26

一般来说,我一直在初始化Window之前的自己InitializeComponent()并设置随后包含的控件。然而,我并没有那么一致,而且我还没有真正注意到排序有问题。所以:

  • 我(可能)正在做一些可怕的事情吗?特别是之前设置子控件的属性是否有问题InitializeComponent()?
  • 在这方面什么是好的风格?

编辑:由于我得到的前两个答案有点矛盾,让我更具体一些:

public Foo Foo {get; protected set}
public FooWindow (Foo foo)
{
    Foo = foo;
    this.Closing += FooWindow_Closing;
    Foo.Frobbed += Foo_Frobbed;

    InitializeComponent();

    this.DataContext = this;
    this.Title = Foo.Name() + " Window";

    FooListView.ItemSource = Foo.CalculateList();

    FocusManager.SetFocusedElement(this, FooListView);
}

这大约是对的吗?我应该只做 MVVM 而我的系统中没有任何东西吗?Window构造函数?


通过在其他代码之后调用 InitializeComponents,您可能会面临意外覆盖 XAML 中设置的属性或使用未初始化对象的风险。通常,隐藏代码的优先级高于 XAML,因此我会将 InitializeComponents(又名解析并加载 XAML)保留在顶部。

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

在 WPF 窗口的构造函数中,InitializeComponent() 之前和之后应该做什么? 的相关文章

  • C#/WPF:禁用 RichTextBox 的文本换行

    有谁知道如何禁用文本换行RichTextBox 例如 如果我有一个大字符串不适合窗口 RichTextBox将字符串中无法显示的部分放在新行中 我想禁用它 并使其仅通过使用Scrollbar 多谢 Cheers A RichTextBox
  • WPF;单击 ListView 中的空白区域时如何取消选择所有选定的项目

    当我有几个 甚至一个 selected items我按简单click在我的空白处ListView 空白 非行 我想取消选择所有选定的项目 这是我取消选择所有项目的功能 private void DeselectAllListViewItem
  • 如何从页面级别获取父框架?

    我有一个带有框架和几页的窗口 加载窗口时 框架导航到欢迎页面 当我单击欢迎页面内的按钮时 我希望父框架导航到另一个页面 为此 我需要从页面级别访问父框架 但我不知道如何执行此操作 我尝试了下面的代码 但它返回 null private vo
  • 带有 ObservableCollection 和动态过滤器的 Silverlight ListBox

    假设我有这门课 public class MyData public bool IsActive get set public String Data1 get set public String Data2 get set and an
  • WPF - 检测鼠标按下一段时间

    检测鼠标按钮何时在特定元素上按住特定时间段的最佳方法是什么 感谢您的提示 我创建了一个附加属性以避免任何代码隐藏 using System using System Windows using System Windows Threadin
  • 如何在 WPF 中实现虚线或点线边框?

    我有一个ListViewItem我正在申请Style到 我想把灰色虚线作为底部Border 我怎样才能在 WPF 中做到这一点 我只能看到纯色画笔 这在我们的应用程序中效果很好 允许我们使用真正的边框而不是乱用矩形
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 如何在Wpf中的用户控件中调用MahApps Metro对话框

    当我尝试调用 MahApps Metro 对话框时 我在传递值时遇到错误 在传递参数时调用对话框控制时我需要传递 Metrowindow 参数 但我需要在用户控件中调用它 下面是当我需要对话框控制时我将调用的方法 public async
  • 使 DataTemplate 可混合

    如何为 ViewModel 制作可混合的数据模板 可在表达式混合中设计 当我转到资源并尝试直接编辑数据模板时 我在绘图板上看到的只是一个空白矩形 这是因为 DataTemplate 没有绑定到任何东西 当然 我可以创建一个 UserCont
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • ListView ItemContainerStyle 模板

    我创建了用作 ListView 项目模板的样式 其中包含 CheckBox 和 TextBlock
  • Wpf TextBlock 中的垂直文本

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

    我有一个TreeView我想允许用户添加和删除子项目 在探索基本功能时 我使用button and a textbox添加此子项 当用户点击button a new TreeViewItem需要创建并设置为我的父项的子项TreeView与t
  • WPF 处理文本、图像和文件粘贴事件

    我正在开发一个 WPF 应用程序 我想捕获 RichTextBox 输入中的粘贴命令并处理粘贴的文件 为此 我使用以下回调
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 有没有比 ` except: pass` 更简洁的替代方案?

    我有一个函数 可以按偏好顺序返回多个组的随机成员 事情是这样的 def get random foo or bar I d rather have a foo than a bar if there are foos return get
  • 为什么假设 send 可能返回的数据少于在阻塞套接字上传输的请求数据?

    在流套接字上发送数据的标准方法始终是调用 send 并写入一大块数据 检查返回值以查看是否发送了所有数据 然后再次调用 send 直到整个消息被接受 例如 这是一个常见方案的简单示例 int send all int sock unsign
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标

随机推荐

  • Spring OAUTH2 - 访问令牌到期时间

    是否可以以编程方式更新 重置访问令牌的到期时间 如果是 哪个类 过滤器是执行此操作的最佳位置 以便可以在 JDBC 令牌存储中更新到期时间 要全局更新访问令牌的到期时间 您应该创建该实例DefaultTokenServices 注入到Aut
  • 请描述一下您使用 Microsoft C++/CLI 的体验 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 C CLI 是非常强大的语
  • 对 Liferay 中存储的角度应用程序执行量角器测试时出现“角度未定义”错误

    我正在 Ubuntu 14 04 虚拟主机上运行 我正在尝试使用 PROTRACTOR 和 Liferay 中托管的应用程序创建一些 E2E 测试 对于登录部分 不需要角度 使用量角器进行的测试是好的 页面登录并正确导航 但是当我尝试使用以
  • 你能用Java编写虚函数/方法吗?

    是否可以写virtualJava 中的方法 就像 C 中的方法一样吗 或者 是否有一种合适的 Java 方法可以实现来产生类似的行为 我可以举一些例子吗 From 维基百科 In Java 所有非静态方法都是通过 默认 虚函数 仅有的 方法
  • 自定义滑块控件

    我想自定义滑块控件 但找不到任何可应用的东西 我想要制作的滑块应该如下图所示 请任何人建议我怎样才能做到 试试这个代码 CGRect frame CGRectMake 174 12 0 120 0 40 customSlider UISli
  • Spring Boot如何返回我自己的验证约束错误消息

    当我的请求出现问题时 我需要有自己的错误响应主体 并且我正在尝试使用 NotEmpty约束消息属性返回错误消息 这是我的类 它使用我需要的主体返回错误消息 package c m nanicolina exceptions import o
  • 想要在Weblogic中启用GZip压缩

    我想为我的静态文件启用 GZIP 压缩 例如由 weblogic 服务器提供服务的 css 样式 javascript 任何人都可以帮助如何在 weblogic 服务器中配置此功能 Go to http sourceforge net pr
  • 平滑骰子损失如何可微?

    我正在通过最小化 keras 来训练 U Netdice loss解决此问题常用的函数 改编自这里 and here def dsc y true y pred smooth 1 y true f K flatten y true y pr
  • Android 中的 .dex 文件是什么?

    我有一些关于dex 文件 什么是dex安卓中的文件 dex 在 Android 上如何工作 如何使用它们来调试 Android 应用程序 它们与java类文件相似吗 我需要具体信息 请提供帮助 欢迎任何真实的例子 关于 dex 文件 该系统
  • 不同地区不同的认证方式

    我正在开发的网站有两个部分 一个部分使用普通表单身份验证 另一个部分使用基于 HMAC 的身份验证 基于表单的工作方式与正常情况一样 除了使用自定义会员资格提供程序 最令人沮丧的是 默认情况下 如果决定使用表单身份验证 它会将所有 401
  • ASP.NET Web 窗体是否阻止双击提交?

    我正在从事一个 ASP NET 4 0 Web Forms 项目 在中断了大约 5 年之后 我对提交行为感到困惑 在按钮的单击事件中 我使线程休眠 以便可以多次单击提交按钮 据我所知 ASP NET 正在阻止多次调用单击事件 这是真的 顺便
  • 参考折叠规则是什么?C++ 标准库如何利用它们?

    以下链接提供了 4 种形式的参考折叠 如果我正确的话 这些是唯一的 4 种形式 http thbecker net articles rvalue references section 08 html 从链接 A 变成A A 变成A A 变
  • 在Python中将turtle绘制的图像转换为PNG

    我正在用 Python 制作一个抽象艺术模板生成器 它接受最小半径 最大半径和圆数的输入 它在随机的地方绘制随机的圆圈 也满足用户的要求 我想将海龟图形转换为 PNG 以便用户可以随心所欲地编辑模板 但我不知道如何继续 这是我的代码 imp
  • 为什么这些创建引用的方式表现不同?

    下面的代码运行正确 let a mut 3 a 4 assert eq a 4 以下也运行 let a Some 3 let mut b a unwrap assert eq a unwrap 3 但以下内容无法编译 let a Some
  • 通过php流式传输mp3文件

    这是我的 php 代码 用于通过 php 流式传输 mp3 文件 set time limit 0 dirPath path of the directory songCode REQUEST c filePath dirPath song
  • 易失性重载?

    我听说 volatile 和 const 一样是重载的因素 如果函数被易失性参数重载 易失性版本什么时候被调用 我无法想象调用 volatile version 时的情况 这是一个例子 include
  • VS Code SCSS 自动编译为 CSS

    我是编程新手 刚刚开始学习 HTML CSS 对于编码 我开始使用 VS Code 我真的很喜欢它 到目前为止 我遇到的唯一问题是将 SCSS 自动编译为 CSS 我搜索并阅读了许多解决方案 我发现最好的解决方案是在 VS Code 终端中
  • PHP 解析 ISO 格式的日期 [重复]

    这个问题在这里已经有答案了 我目前正在使用 ConstantContact 它返回带有更新字段的 XML 格式如下 2013 02 13T08 35 34 195Z 我假设这是日期 c 格式 如何解析这个格式呢 斯特托时间没有返回正确的值
  • 问:如何在命令提示符下显示汉字

    是否可以在命令提示符下显示中文字符 如果是这样 设置是什么 如果您需要阅读简体中文 GBK 即代码页936 在dos提示符下输入以下命令 chcp 936 Update 微软推出了一个新的终端应用程序 https aka ms termin
  • 在 WPF 窗口的构造函数中,InitializeComponent() 之前和之后应该做什么?

    一般来说 我一直在初始化Window之前的自己InitializeComponent 并设置随后包含的控件 然而 我并没有那么一致 而且我还没有真正注意到排序有问题 所以 我 可能 正在做一些可怕的事情吗 特别是之前设置子控件的属性是否有问