固定最簡步驟,包括
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>
失焦時下面就會顯示