服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# WPF数据绑定模板化操作的完整步骤

C# WPF数据绑定模板化操作的完整步骤

2022-12-16 13:29C#测量小生 C#

WPF中的数据绑定提供了很强大的功能,与普通的WinForm程序相比,其绑定功能为我们提供了很多便利,下面这篇文章主要给大家介绍了关于C# WPF数据绑定模板化操作的完整步骤,需要的朋友可以参考下

前言:

WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法:

具体实例代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)此类中大多数情况下写的是属性和方法

 示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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代码块中进行绑定 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
2
3
4
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数据绑定模板化内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/fzyyds/p/15762649.html

延伸 · 阅读

精彩推荐
  • C#C# IQueryable及IEnumerable区别解析

    C# IQueryable及IEnumerable区别解析

    这篇文章主要介绍了C# IQueryable及IEnumerable区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    八英里7782022-10-09
  • C#c#字符串编码问题的处理解决

    c#字符串编码问题的处理解决

    这篇文章主要介绍了c#字符串编码问题的处理解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    森大科技6802022-08-16
  • C#C#后台接受前台JSON字符串装换成字典集合处理

    C#后台接受前台JSON字符串装换成字典集合处理

    本文介绍C#利用Newtonsoft接收前端的JSON字符串,并解析反序列化成字典集合,对其进行处理。...

    Darren Ji3752021-11-18
  • C#Unity自定义编辑器界面(Inspector界面)

    Unity自定义编辑器界面(Inspector界面)

    这篇文章主要为大家详细介绍了Unity自定义编辑器界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    王王王渣渣10282022-08-05
  • C#C#通过正则表达式实现提取网页中的图片

    C#通过正则表达式实现提取网页中的图片

    本文给大家分享的是使用C#通过正则表达式来实现提取网页中的图片的代码,十分的方便,有需要的小伙伴可以参考下。...

    C#教程网8792021-11-05
  • C#一文看懂C#中List的扩容机制

    一文看懂C#中List的扩容机制

    这篇文章主要介绍了C#中的扩容机制,文中以实例代码辅助,帮助大家更好的工作和学习,感兴趣的小伙伴不妨了解下...

    一线码农上海8102022-09-08
  • C#C#中如何使用 XmlReader 读取XML文件

    C#中如何使用 XmlReader 读取XML文件

    本文介绍了C#中使用XmlReader,只读、向前、循环读取XML节点的方法,并为我们列出、XmlReader类的方法、属性、枚举等成员,希望对大家学习有所帮助。...

    秦风10282021-11-22
  • C#C#编程自学之类和对象

    C#编程自学之类和对象

    C#一种面向对象的编程语言,是专门为.NET应用而开发出的语言。在.NET运行库的支持下,.NET框架的各种优点在C#中表现得淋漓尽致。所以学习类和对象以及如...

    C#教程网10662021-10-28