C# WPF數據綁定模板化操作的完整步驟
前言:
WPF數據綁定對於WPF應用程序來說尤為重要,本文將講述使用MVVM模式進行數據綁定的四步走用法:
具體實例代碼如下:
public class NotifyPropertyObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } } private MainWindowVM vm = new MainWindowVM(); //重點 public MainWindow() { InitializeComponent(); this.DataContext = vm;//重點 }
第二步:為每一個界面建立其模型類,如MainWindowVM,AzimuthWindowVM……..,此種類型的類同樣需繼承自類NotifyPropertyObject
註意:(1)此類中主要添加後臺的實現代碼,其一是使後臺代碼盡可能簡單;其二是便於數據的綁定
(2)此類中大多數情況下寫的是屬性和方法
示例:
public class MainWindowVM : NotifyPropertyObject { private double _dmsL0; //中央子午線經度 public double dmsL0 { get { return _dmsL0; } set { _dmsL0 = value; RaisePropertyChanged("dmsL0"); } } } public class AzimuthWindowVM : NotifyPropertyObject { private string azName = "A001->B004的坐標方位角"; public string AzName { get { return azName; } set { azName = value; RaisePropertyChanged("AzName"); } } }
第三步:如果類中存在與界面相關的量,則讓該類繼承類NotifyPropertyObject,並在派生類中在屬性中的Set代碼塊中進行綁定
public class Ellipsoid : NotifyPropertyObject { private double _a; //長半軸 public double a { get => _a; set { _a = value; if (_a > 0 && _f > 0) { Init(a, f); } RaisePropertyChanged("a"); } } }
第四步:在界面設計代碼中進行綁定
示例:
1、<TextBox Grid.Column="2" VerticalAlignment="Center" Text="{Binding CurrentEllipsoid.a}" IsEnabled="{Binding CurrentEllipsoid.IsCustomEllopsoid}"/> 2、<ComboBox VerticalAlignment="Center" ItemsSource="{Binding EllipsoidList}" SelectedItem="{Binding CurrentEllipsoid}"/> 3、Title="{Binding Title}" 註意:標題也可綁定
經以上四步走,WPF數據綁定工作已經基本完成,實驗證明該方法提高瞭程序的容錯能力,以及程序數據結構的健壯性。
總結
到此這篇關於C# WPF數據綁定模板化操作的文章就介紹到這瞭,更多相關C# WPF數據綁定模板化內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- C#優雅的實現INotifyPropertyChanged接口
- C#接口INotifyPropertyChanged使用方法
- WPF中使用CallerMemberName簡化InotifyPropertyChanged的實現
- C# WPF Image控件的綁定方法
- C# wpf Canvas中實現控件拖動調整大小的示例