固定最简步骤,包括
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>
失焦时下面就会显示