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

固定最简步骤,包括

XAML:

题头里引入命名空间

标题下面引入类

box和block绑定属性

C#:

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

引入字段

引入属性

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

block=>指向box的属性

从Textbox这行看

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

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

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

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

这样其实反而像事件了

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

cs 复制代码
            <TextBlock Text="{Binding DisplayText}" 
                       Width="300" Height="30" 
                       TextWrapping="Wrap" 
                       VerticalAlignment="Center"/>

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

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

MainWindowViewModel.cs

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

cs 复制代码
<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>

失焦时下面就会显示

相关推荐
学习编程的Kitty1 分钟前
算法——位运算
java·前端·算法
用户9047066835719 分钟前
如何使用 Spring MVC 实现 RESTful API 接口
java·后端
刘某某.20 分钟前
数组和小于等于k的最长子数组长度b
java·数据结构·算法
程序员飞哥25 分钟前
真正使用的超时关单策略是什么?
java·后端·面试
用户9047066835727 分钟前
SpringBoot 多环境配置与启动 banner 修改
java·后端
攻城狮CSU30 分钟前
WPF 绑定机制实现原理
wpf
攻城狮CSU37 分钟前
WPF 之数据绑定一(Data Binding)
wpf
小old弟1 小时前
后端三层架构
java·后端
花花鱼1 小时前
spring boot 2.x 与 spring boot 3.x 及对应Tomcat、Jetty、Undertow版本的选择(理论)
java·后端
温柔一只鬼.1 小时前
Docker快速入门——第二章Docker基本概念
java·docker·容器