当前位置: 首页 > news >正文

43.Textbox的数据绑定 C#例子 WPF例子

固定最简步骤,包括

XAML:

题头里引入命名空间

标题下面引入类

box和block绑定属性

C#:

通知的类,及对应固定的任务

引入字段

引入属性

属性双触发,其中一个更新block的属性

block=>指向box的属性

从Textbox这行看

            <TextBox Text="{Binding InputText, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" Width="300" Height="30" Margin="0,0,0,10"/>

binding是绑定的意思,后面的inputtext是类里的一个属性

意思就是它的文本和这个属性绑定了

updatesourcetrigger是一个触发,后面等号后的内容是不同的选项,这里选择的触发方式是失焦

这样其实反而像事件了

mode是twoway双向的意思,改属性能反映到控件,改控件能反映到属性

            <TextBlock Text="{Binding DisplayText}" Width="300" Height="30" TextWrapping="Wrap" VerticalAlignment="Center"/>

这里的话就是只进行了文本与属性绑定,没有触发方式。

然后这是一个最简的使用TextBox绑定,然后用TextBlock显示的例子

MainWindowViewModel.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;namespace Main_Window_ViewModel
{class MainWindowViewModel: INotifyPropertyChanged{private string textBox1Text;public string TextBox1Text{get { return textBox1Text; }set{textBox1Text = value;OnPropertyChanged(textBox1TextDisplay);OnPropertyChanged();}}private string textBox1TextDisplay;public string TextBox1TextDisplay => TextBox1Text;//固定的public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName] string propertyName = null){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}
}

XMAL

<Window x:Class="绑定类型一_box和blick.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:Main_Window_ViewModel"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Window.DataContext><local:MainWindowViewModel/></Window.DataContext><Grid><TextBox HorizontalAlignment="Left" Margin="400,145,0,0" TextWrapping="Wrap" Text="{Binding TextBox1Text}" VerticalAlignment="Top" Width="120"/><TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding TextBox1TextDisplay}" VerticalAlignment="Top" Margin="400,183,0,0"/><TextBox HorizontalAlignment="Left" Margin="400,108,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/></Grid>
</Window>

失焦时下面就会显示

http://www.lryc.cn/news/522504.html

相关文章:

  • LLM大语言模型的分类
  • 【北京迅为】iTOP-4412全能版使用手册-第八十七章 安装Android Studio
  • 【深度学习】神经网络之Softmax
  • 容器渗透横向
  • 黑马Java面试教程_P1_导学与准备篇
  • 《自动驾驶与机器人中的SLAM技术》ch4:预积分学
  • Docker部署MySQL 5.7:持久化数据的实战技巧
  • Spring框架 了解
  • 低代码独特架构带来的编译难点及多线程解决方案
  • 如何使用Ultralytics训练自己的yolo5 yolo8 yolo10 yolo11等目标检测模型
  • Java技术栈 —— Andorid开发入门
  • Qt天气预报系统获取天气数据
  • 力扣 搜索二维矩阵
  • JavaScript 操作符与表达式
  • 深度学习 Pytorch 张量(Tensor)的创建和常用方法
  • 在VMwareFusion中使用Ubuntu
  • %.*s——C语言中printf 函数中的一种格式化输出方式
  • 基于微信小程序的摄影竞赛系统设计与实现(LW+源码+讲解)
  • hydra破解密码
  • JAVA之外观模式
  • 如何选择合适的服务器?服务器租赁市场趋势分析
  • CentOS 下载软件时报Error: Failed to synchronize cache for repo ‘AppStream‘解决方法
  • 鲍厚霖:引领AI广告创新,搭建中美合作桥梁
  • 学习记录1
  • 【Gossip 协议】Golang的实现库Memberlist 库简介
  • LDD3学习7--硬件接口I/O端口(以short为例)
  • openharmony电源管理子系统
  • 【Rust自学】13.4. 闭包 Pt.4:使用闭包捕获环境
  • 在 macOS 上,用命令行连接 MySQL(/usr/local/mysql/bin/mysql -u root -p)
  • mono3d汇总