wpf数据绑定之元素、资源、后台绑定

        wpf前端的数据绑定主要分为元素、资源以及后台数据三种,元素可以简单的理解为前端的空间数据绑定,资源是在resource里找数据,而后台就是跟cs文件之间的数据互相传递。

        先说下元素吧,也就是控件元素,因为代码比较简单,就不上效果了,自己可以把下面两行代码复制到xaml文件里运行看,主要就是一个滑动块与文本框互相影响的效果,如果用winfrom来实现,要为两个控件分别写个方法。

        <Slider Name="sd"  Width="200"   />
        <TextBox Text="{Binding ElementName=sd,Path=Value}"  Height="40"   Width="200"/>

        接着说资源数据绑定,用到了resource,可以自己设置数据源到xml文件里,然后前端用key名称来获取值
       

<Window.Resources >
        <TextBlock x:Key="txt">hello world</TextBlock>

</Window.Resources>

  <!--资源绑定-->
        <TextBox Text="{Binding  Source={StaticResource  txt}, Path=Text}" TextWrapping="Wrap/>

        最后,来讲下重点后台数据绑定,也是wpf精华的地方,后台数据绑定可以把数据绑定到窗口,也可以绑定到控件。

1、先展示一下绑定到控件的写法,先在xaml里写入

<TextBlock x:Name="txt2" Text="{Binding Name,FallbackValue=没找到 }" HorizontalAlignment="Left" Margin="52,140,0,0" TextWrapping="Wrap"  Width="100" VerticalAlignment="Top" />

然后在cs文件里写入,这样程序运行后,自动就会在文本框里显示李四的字样了。
   

    //student st = new student() { Name = "张三1" };
    //txt2.DataContext = st;  

    txt2.DataContext = new student() 


  class student 
    {
        public string Name { get  ; set  ; } ="李四";
    }

2、接着展示一下绑定到窗口的写法,先增加一个类,叫MainViewModel.cs,内容如下:

 class MainViewModel
    {
        private string age;
        public string Age { get => age; set => age = value; }
        public MainViewModel()
        {
            age = "十八岁";
        }

    }

在mianwindow窗口里,通过实例化的方法把值获取到,代码如下:

  this.DataContext =new  MainViewModel();

最后在xaml里展示出来

        <TextBox   Text="{Binding Age}" VerticalAlignment="Top" Width="120"/>

上一篇:WPF--MVVMLight--表单验证


下一篇:C#WPF数据绑定模板化操作四步走