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>

失焦时下面就会显示

相关推荐
Wang's Blog3 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
\光辉岁月/4 小时前
5.java-数组
java·开发语言
谢亮_vipxieliang5 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
郑州光合科技余经理5 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071575 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat5 小时前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源5 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
Wang's Blog5 小时前
Java 项目实战: 外卖平台优化-前后端分离开发模式与工程拆分
java·开发语言
周杰伦fans6 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
HEJOO96 小时前
指针的算术运算详解
java·数据结构·算法