WPF MVVC 基础 - 父子窗体

结构:

main window预览:

Model:

view model1:

viewmodel2: CustomerInfoViewModel

其中上方缩小部分的代码如下:

创建一个view:  CustomeInfoView

看一下父子窗体:

疑问:DataContext指的是?

The DataContext property is the default source of your bindings, unless you specifically declare another source, like we did in the previous chapter with the ElementName property. It‘s defined on the FrameworkElement class, which most UI controls, including the WPF Window, inherits from. Simply put, it allows you to specify a basis for your bindings

There‘s no default source for the DataContext property (it‘s simply null from the start), but since a DataContext is inherited down through the control hierarchy, you can set a DataContext for the Window itself and then use it throughout all of the child controls. Let‘s try illustrating that with a simple example:

如果将childviewmodel.Info文字更改成如下逻辑,效果:

我们也可以将viewmodel拓展成属性property.

设置为public的话,外部也可以调用了。

原文地址:https://www.cnblogs.com/watermarks/p/8469170.html

时间: 2024-08-29 11:29:22

WPF MVVC 基础 - 父子窗体的相关文章

WPF 数据绑定基础

纯理论,可能会枯燥. .net 技术群: 199281001 ,欢迎加入. 1.目标对象一定是派生自DependencyObject的对象,并且目标属性必须是依赖属性,否则数据绑定操作将会失   败.绑定源对象可以不是依赖对象和依赖属性. 2.定义了依赖属性时,FrameworkPropertyMetadataOptions.NotDataBindable 标志会影响依赖属性的绑定.当改变源对象依赖属性值后,绑定目标可以立即得以更新,开发人员不需要响应事件来手动编写响应代码. 3.移除绑定:开发

WPF加载Winform窗体时 报错:子控件不能为顶级窗体

一.wpf项目中引用WindowsFormsIntegration和System.Windows.Forms 二.Form1.Designer.cs 的 partial class Form1 设置为:public partial class Form1 三.代码如下: XXXX.Form1 Zhuwindow = new XXXX.Form1(); Zhuwindow.TopLevel = false; Zhuwindow.FormBorderStyle = System.Windows.Fo

WPF 动态更改启动窗体startupUri

原文:WPF 动态更改启动窗体startupUri 第一步: 在 App.xaml 里,把 StartupUri=""去掉,改成  Startup="Application_Startup" 第二步: 在 App.xaml.cs里,增加 Application_Startup 事件: private void Application_Startup(object sender, StartupEventArgs e) { Application currApp =

Flex父子窗体相互调用

Flex父子窗体相互调用 1.设计思路 (1)子窗体调用父窗体的方法 (2)子窗体做了改动后,返回父窗体,父窗体调用子窗体函数 2.设计源代码 (1)父窗体 ParentWindow.mxml: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library:/

[html][javascript]父子窗体传值

父窗体 <script type="text/javascript"> newwindow = window.open("b1.html","_blank"); function test(){ var mytext = document.getElementById("myinfo"); newwindow.document.getElementById("myinfo").innerText

WPF入门基础教程之布局(1)

WPF的常用布局控件的介绍及使用方法 (1) 开局一张图,内容全靠写,本系列的文章, 主要针对刚入门.亦或是从 winform/bs转过来的开发人员快速入门的指南, 相对于其它一些文章中会详细的从项目如何建立到其实现的原理及组成部分, 本系列的文章则旨在如果快速的构建: 从布局.样式.触发器.绑定.显示.MVVM架构一系列的阶段学习,构建一个基础的呈现以达到学习的目的. WPF相关资料合集 (含书籍.框架.及开源UI组件等) WPF编程宝典.pdf 深入浅出WPF.pdf MaterialDes

WPF 委托 事件 B窗体调用A窗体方法

原文:WPF 委托 事件 B窗体调用A窗体方法 具体实现 A窗体 中加载B窗体  B窗体触发A窗体里的方法 当点击B窗体确定Button事件   给A窗体俩个TextBox赋值 并关闭B窗体 B窗体 1)定义参数类 2)定义委托 定义委托事件 3) 定义触发事件方法 4) 触发事件方法 A窗体 1)实例化B窗体对象 2)注册定义的事件 3) 实现事件 代码 B窗体 1)定义参数类 也就是 我传过去了俩个字段(这俩个字段 让我封装成的类) //对象 public class ItemEventAr

WPF 自定义Metro Style窗体

为了使WPF程序在不同版本的操作系统上保持一致的显示效果,我们需要重写WPF控件样式.这篇博客将展示如何创建一个Metro Style的WPF窗体. 首先先看一下最终窗体的效果图, 通过截图我们可以看出来这个窗体由两部分组成,顶部为最小化和关闭按钮,其他区域为窗体的显示区域.请看下面的具体实现代码, MetroWindow样式: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentat

【.net 深呼吸】WPF 中的父子窗口

与 WinForm 不同,WPF 并没有 MDI 窗口,但 WPF 的窗口之间是可以存在“父子”关系的. 我们会发现,Window 类公开了一个属性叫 Owner,这个属性是可读可写的,从名字上我们也能猜到,应该是用来设置窗口的父子关系的.这个属性看起来不难用,只要赋个窗口实例即可,而真正的难点是你得搞清楚“谁是谁的父窗口”,“谁是谁的子窗口”,一旦你搞混了,有可能会应用程序带来一些小麻烦. 这个问题是一位妹子问我的,不然怎么说女孩子特别细心呢,这个小玩意儿估计很多时候我们都不会注意到. 下面,