前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF-数据绑定

WPF-数据绑定

作者头像
MaybeHC
发布2024-04-23 19:13:58
540
发布2024-04-23 19:13:58
举报
文章被收录于专栏:技术之路技术之路

下面记录了几种数据绑定时的场景,以供之后自己参考。

一、Path=.的Binding

这是数据绑定中的特殊情况,Binding源本身就数据且不需要Path来指明,string、int等基本数据。

代码语言:javascript
复制
<Window x:Class="WpfApplication1.MainWindow"
        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:WpfApplication1"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        mc:Ignorable="d"
        Title="MainWindow" Height="250" Width="359">
    <StackPanel Margin="0,0,0,0">
        <StackPanel.Resources>
            <sys:String x:Key="myString">
                学习WPF
            </sys:String>
        </StackPanel.Resources>
        <TextBlock Name="textBlock1" Text="{Binding Path=.,Source={StaticResource ResourceKey=myString}}">
        </TextBlock>
    </StackPanel>
</Window>

等效成C#代码

string myString = “学习WPF”; this.textBlock1.SetBinding(TextBlock.TextProperty, new Binding(".") { Source = myString });

在这里插入图片描述
在这里插入图片描述

二、DataContext作为Binding的源 我们这里先声明一个类

代码语言:javascript
复制
    public class Student
    {
        public int Id { get; set; }
        public int Age { get; set; }
    }

然后创建程序的UI

代码语言:javascript
复制
<Window x:Class="WpfApplication1.MainWindow"
        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:WpfApplication1"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        mc:Ignorable="d"
        Title="MainWindow" Height="250" Width="359">
    <StackPanel Margin="0,0,0,0">
        <StackPanel.DataContext>
            <local:Student Age="11" Id="3" ></local:Student>
        </StackPanel.DataContext>
        <TextBlock Name="textBlock1">
            <TextBox Text="{Binding Age}"></TextBox>
            <TextBox Text="{Binding Id}"></TextBox>
        </TextBlock>
    </StackPanel>
</Window>

我们可以看下绑定后的结果

在这里插入图片描述
在这里插入图片描述

在UI元素的每个结点都有DataContext,当一个binding只知道自己的Path不知道自己的Source时,它会沿着UI元素树一路向树的根部寻找。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Path=.的Binding
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com