溫馨提示×

在C#中如何實現雙向數據綁定

c#
小樊
145
2024-08-30 23:17:38
欄目: 編程語言

在C#中,雙向數據綁定通常在WPF(Windows Presentation Foundation)或UWP(Universal Windows Platform)應用程序中使用

  1. 首先,創建一個Model類,它將作為數據源。這個類需要實現INotifyPropertyChanged接口,以便在屬性值更改時通知UI。
using System.ComponentModel;

public class Person : INotifyPropertyChanged
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            _name = value;
            OnPropertyChanged("Name");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
  1. 在MainWindow.xaml中,創建一個TextBox和一個TextBlock,并將它們的Text屬性分別綁定到Person類的Name屬性。
        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:WpfApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
   <Window.DataContext>
       <local:Person />
    </Window.DataContext>
   <StackPanel>
       <TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />
        <TextBlock Text="{Binding Name}" />
    </StackPanel>
</Window>

在這里,我們將TextBox的UpdateSourceTrigger設置為PropertyChanged,這意味著每當文本發生變化時,都會更新綁定的源(即Person類的Name屬性)。

  1. 現在,當你在TextBox中輸入文本時,TextBlock將自動更新為相同的文本。這就是雙向數據綁定的基本實現。

注意:這個示例是在WPF應用程序中實現的。在UWP應用程序中,實現方式類似,只需將命名空間和類型更改為UWP相關的命名空間和類型即可。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女