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>

失焦时下面就会显示

相关推荐
小梁不秃捏3 小时前
深入浅出Java虚拟机(JVM)核心原理
java·开发语言·jvm
周杰伦fans6 小时前
C#中修饰符
开发语言·c#
yngsqq6 小时前
c# —— StringBuilder 类
java·开发语言
星星点点洲6 小时前
【操作幂等和数据一致性】保障业务在MySQL和COS对象存储的一致
java·mysql
xiaolingting6 小时前
JVM层面的JAVA类和实例(Klass-OOP)
java·jvm·oop·klass·instanceklass·class对象
风口上的猪20157 小时前
thingboard告警信息格式美化
java·服务器·前端
avi91117 小时前
[AI相关]Unity的C#代码如何简写
unity·c#·语法糖
追光少年33227 小时前
迭代器模式
java·迭代器模式
超爱吃士力架8 小时前
MySQL 中的回表是什么?
java·后端·面试
扣丁梦想家8 小时前
设计模式教程:装饰器模式(Decorator Pattern)
java·前端·装饰器模式