BindableBase.cs
| public abstract class BindableBase : INotifyPropertyChanged |
| { |
| public event PropertyChangedEventHandler PropertyChanged; |
| |
| |
| |
| |
| |
| |
| |
| |
| protected virtual bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null) |
| { |
| if (object.Equals(storage, value)) return false; |
| |
| storage = value; |
| this.OnPropertyChanged(propertyName); |
| |
| return true; |
| } |
| |
| protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) |
| { |
| if (PropertyChanged != null) |
| { |
| PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); |
| } |
| } |
| } |
| |
src\Juster.Music\MainWindow.xaml
| <Window |
| x:Class="Juster.Music.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:Juster.Music" |
| mc:Ignorable="d" |
| Title="MainWindow" Height="200" Width="200"> |
| |
| <Window.Resources> |
| <local:UserModel x:Key="MyDataSource"/> |
| </Window.Resources> |
| |
| <Grid> |
| <Grid.RowDefinitions> |
| <RowDefinition></RowDefinition> |
| <RowDefinition></RowDefinition> |
| </Grid.RowDefinitions> |
| |
| <StackPanel Grid.Row="0" HorizontalAlignment="Center"> |
| <Label>Enter a Name:</Label> |
| <TextBox> |
| <Binding Source="{StaticResource MyDataSource}" Path="Name" |
| UpdateSourceTrigger="PropertyChanged" /> |
| </TextBox> |
| </StackPanel> |
| |
| <StackPanel Grid.Row="1" HorizontalAlignment="Center"> |
| <Label>The name you entered:</Label> |
| <TextBlock Text="{Binding Source={StaticResource MyDataSource}, Path=Name}"/> |
| </StackPanel> |
| |
| </Grid> |
| </Window> |
| |
src\Juster.Music\MainWindow.xaml.cs
| |
| |
| |
| |
| public partial class MainWindow : Window |
| { |
| public MainWindow() |
| { |
| InitializeComponent(); |
| } |
| |
| } |
| |
UserModel.cs
| public class UserModel : BindableBase |
| { |
| private string name; |
| |
| public string Name { get => name; set { SetProperty<string>(ref name, value); } } |
| public UserModel(){ } |
| } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2023-01-31 express_javscript_webframe