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"/>