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

news/2025/1/18 10:27:57/

固定最简步骤,包括

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.ppmy.cn/news/1564123.html

相关文章

NVIDIA 下 基于Ubuntun20.04下 使用脚本安装 ros2-foxy 和 使用docker安装 ros2-foxy

一、前提介绍&#xff1a; 本文主要采用两种方式在NVIDIA 下基于 Ubuntun20.04安装 ros2-foxy。 使用环境&#xff1a; NVIDIA 为 Jetson 系列下 Jetson Xavier NX&#xff1b; Ubuntun版本&#xff1a;20.04 二、安装方法&#xff1a; 1、使用脚本编译方式&#xff1a; 使…

AttributeError: ‘super‘ object has no attribute ‘__sklearn_tags__‘

最近用sklearn跑Stacking&#xff0c;基学习器是XGBoost、LightGBM、CatBoost。运行的时候报了标题的这个错误。 应该是sklearn的版本高了&#xff0c;需要降级处理。报错时的版本号是1.6.0 &#xff0c;可以降级到1.5.2。直接运行下面的代码就行。 !pip uninstall -y scikit…

【Redis】Redis大key的危害及解决方案分享

文章目录 一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危害六、大key检查与发现6.1 使用 --bigkeys参数6.2 使用scan命令6.3 使用 memory 命令查看 key 的大小6.4 使用 Rdbtools 工具包6.5 代码埋点6.6 公有云的Redis分析服务 七、大ke…

[云讷科技] 用于软件验证的仿真环境

我们使用Pursuit自动驾驶仪为各种场景设计仿真环境&#xff0c;以便用户可以在模拟环境中直接验证他们的软件&#xff0c;无需现场测试。该环境基于Gazebo引擎。 1. 工作区目录 模拟环境的工作区位于提供的U盘中的~/pursuit_space/sitl_space_pursuit中。用户可以按照用户手册…

css3过渡总结

一、过渡的定义与作用 CSS3 过渡&#xff08;Transitions&#xff09;允许 CSS 属性在一定的时间区间内平滑地过渡&#xff0c;从一个值转变为另一个值。它能够让网页元素的状态变化更加自然、流畅&#xff0c;给用户带来更好的视觉体验。例如&#xff0c;当一个元素从隐藏状态…

如何在没有root权限的情况下使用R语言

01、写在前面 大部分共享服务器没有root权限(当然也有例外&#xff1a;有root权限的共享服务器)&#xff0c;装不了Rstudio-server。而R终端虽然可以完成一些基本任务&#xff0c;但对于数据分析、画图等高级操作则显得不够便利。因此&#xff0c;我们需要一种能够轻松应对这些…

Matlab 具有周期性分布的死角孔的饱和空气多孔材料的声学特性

本文对直主孔含侧空腔&#xff08;死角&#xff09;的饱和空气多孔介质中的声传播进行了理论和数值研究。侧腔位于沿每个主孔周期性间隔的“节点”上。研究了侧向空腔分布中周期性的影响&#xff0c;并单独考虑了紧间隔死角的低频极限。结果表明&#xff0c;吸附系数和透射损失…

《鸿蒙开发-鸿蒙教程-答案之书》Grid怎么显示不完并且滑动不了

《鸿蒙开发-鸿蒙教程-答案之书》Grid怎么显示不完并且滑动不了 关键是看滑动不了&#xff0c;是不是同时设置了columnsTemplate和rowsTemplate。 一般不是固定数量&#xff0c;只能设置一个方向的。 下面就是错误的示范代码&#xff1a; Entry Component struct Index {Sta…