首页 > 编程语言 >C# Binding之 DataContext 测试

C# Binding之 DataContext 测试

时间:2024-08-12 17:49:15浏览次数:5  
标签:DataContext set C# Binding System Windows using public

<Window x:Class="WpfApp2.BindingTest5"
        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:WpfApp2"
        mc:Ignorable="d"       
        Title="BindingTest5" Height="135" Width="300">
    <StackPanel Background="LightBlue" Name="sPanel1">
        <!--<StackPanel.DataContext>
            <local:Student Id="6" Age="29" Name="Tim"/>
        </StackPanel.DataContext>-->
        <Grid x:Name="grid1">
            <StackPanel>
                <TextBox x:Name="textBox1" Text="{Binding Id}"/>
                <TextBox x:Name="textBox2" Text="{Binding Name}"/>
                <TextBox x:Name="textBox3" Text="{Binding Age}"/>
                <TextBox x:Name="textBox4" Text="{Binding WorkYear}"/>
            </StackPanel>
        </Grid>
    </StackPanel>
</Window>




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace WpfApp2
{
    /// <summary>
    /// BindingTest5.xaml 的交互逻辑
    /// </summary>
    public partial class BindingTest5 : Window
    {
        public BindingTest5()
        {
            InitializeComponent();

            Student student = new Student() { Age=100, Id=1, Name="Lucy"};
            Teacher teacher=new Teacher() {  WorkYear=20};
            this.sPanel1.DataContext = student;
            this.grid1.DataContext = teacher;
            textBox1.BorderBrush = null;
        }
    }
    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }
    public class Teacher
    {
        public int WorkYear { get; set; }
    }
}

结果如下:

结论:如果没有显示给DataContext赋值,那么它会从父节点继承。 并不是根据Path的属性名来向上寻找对应的DataContext。

经调试发现:四个TextBox的DataContext均为 teacher 。

标签:DataContext,set,C#,Binding,System,Windows,using,public
From: https://www.cnblogs.com/sound-of-wind-rain/p/18355462

相关文章

  • [赛记] 暑假集训CSP提高模拟19
    数字三角形100pts原题:LuoguCF1517CFillomino2贪心的想一想,我们从上往下处理每个数,每次向左走,不行再向右走,这样就行(因为右面一定有地方,但我们要尽量留给下一个数);为什么这样能填满?下面给出证明:首先,右面和下面不会有空缺(填的方向就是右面和下面);然后手模一下,我们会发现,其实每......
  • XXI Open Cup, Grand Prix of Tokyo
    Preface神秘沟槽Counting大赛,十个题全是模\(998244353\)有点逆天了开场发现G是去年暑假前集训的原,然后坐牢了大半天看榜发现包大爷切了B,然后跟了一手接下来慢慢把所有题都看了一遍,每个题都属于有点思路但不多中间和祁神把诈骗题I玩出来了,然后对着H硬套「PKUWC2018......
  • JavaScript发展历史
    JavaScript作为一种编程语言,经历了多次发展与演变,以下是其主要历史里程碑:1.诞生与早期发展(1995-1999)1995年:JavaScript由BrendanEich在网景公司(Netscape)发明,最初被称为Mocha,后来改名为LiveScript,最终定名为JavaScript。这种命名是为了利用当时Java语言的流行。199......
  • LATTICE HW-USBN-2B 高速下载器
    1.概述     HW-USBN-2B编程烧录Lattice所有芯片,速度非常快。支持LatticeFPGA芯片在线稳定仿真,烧录,加密,支持LatticeCPLD烧录。支持外部配置FLASH、PROM配置烧录。       HW-USBN-2B,特点是很快的速度,30Mb/s,是HW-USBN-2A的下载速度10速度。并且支持I2C接口烧......
  • 改变IntelliJ IDEA 中的system和config/plugins的默认C盘的路径
    1,问题,在为idea在线安装插件时,如JProfiler,会默认安装到C盘,而本人则是希望安装到软件所在的D盘目录下,那么如何修改呢:C:\Users\xxx.IntelliJIdea\config\plugins2,修改方法:打开IntelliJIDEA的安装目录,如本人的为D:\JetBrains\IntelliJIDEA2018.2然后在bin目录下找到idea.pr......
  • 鸿蒙开发Core Speech Kit(基础语音服务)
    CoreSpeechKit是鸿蒙操作系统(HarmonyOS)提供的一个强大的开发工具包,主要用于语音识别、语音合成等语音相关的功能开发。这个工具包为开发者提供了多种语音处理能力,可以用来开发语音助手、智能家居、车载系统等需要语音交互的应用。以下是CoreSpeechKit的一些主要功......
  • 掌握JavaScript中的观察者模式:构建响应式编程的基石
    标题:掌握JavaScript中的观察者模式:构建响应式编程的基石在软件开发中,设计模式是解决特定问题的模板。其中,观察者模式是一种非常重要的设计模式,它允许多个对象监听另一个对象的状态变化,并在该对象状态变化时得到通知。这种模式在JavaScript中尤为有用,尤其是在构建响应式应用......
  • 谷歌浏览器降级的方法-及chromedriver 下载文件
    为了适配python selenium使用chromedriver 对应当前谷歌浏览器,降级https://www.chromedownloads.net/chrome64win/#google_vignette这个地址为谷歌浏览器老版本的地址 http://chromedriver.storage.googleapis.com/index.html这个地址为谷歌浏览器对应的 chromedriver......
  • 微服务安全加固:Spring Cloud的细粒度权限控制策略
    标题:微服务安全加固:SpringCloud的细粒度权限控制策略在微服务架构中,服务的细粒度权限控制是保障系统安全的关键。SpringCloud作为一个微服务架构的解决方案集合,提供了多种工具和策略来实现这一目标。本文将详细介绍如何利用SpringCloud中的各种组件,如SpringCloudSecur......
  • Excel工作表同类数据合并工具
    下载地址:https://pan.quark.cn/s/81b1aeb45e4c在Excel表格中,把多行同类数据合并为一行是件令人无比头痛的事情:首先,你得确定哪几条记录是可合并的同类数据,人工对比多个字段难免顾此失彼挂一漏万;其次,待合并的行可能分属多个分组,需要各自合并,但是同组的多行数据往往会分布在......