一、基础Binding方法
1.新建一个Mydata类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyFirstWPF
{
public class MyData
{
public MyData() // 如果不需要默认值可以不写构造函数
{
this.ColorName = "red";
}
public string ColorName { get; set; }
}
}
2.绑定方式
A. 空绑定
<ListBox Width="150" Height="90" ItemsSource="{Binding}" />
B. 静态资源资源绑定-1
<StackPanel>
<StackPanel.Resources>
<local:MyData x:Key="ResourceMyData"/>
</StackPanel.Resources>
<Button Width="150" Height="30" Content="我的背景是红色的" Background="{Binding Source={StaticResource ResourceMyData}, Path=Color}"/>
</StackPanel>
C. 静态资源资源绑定-2(利用DataContext属性,直接设置Binding ,可减少代码量)
<StackPanel>
<StackPanel.Resources>
<local:MyData x:Key="ResourceMyData"/>
</StackPanel.Resources>
<StackPanel.DataContext>
<Binding Source="{StaticResource ResourceMyData}"/>
</StackPanel.DataContext>
<Button Width="150" Height="30" Content="我的背景是红色的" Background="{Binding Path=Color}"/>
</StackPanel>
二、文本框的绑定和及时更新
1.新建一个User类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyFirstWPF
{
public class User
{
public string Name { get; set; }
}
}
2.绑定方式
在需要发送更新的控件中,Binding 属性需要设置 UpdateSourceTrigger
<StackPanel Height="35" Orientation="Horizontal">
<StackPanel.Resources>
<local:User x:Key="ResourceUser"/>
</StackPanel.Resources>
<Label Content="请输入用户名:"/>
<TextBox Width="150" Height="35">
<TextBox.Text>
<Binding Source="{StaticResource ResourceUser}" Path="Name" UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
</TextBox>
<Label Content="当前输入的内容是:"/>
<TextBlock Text="{Binding Source={StaticResource ResourceUser}, Path=Name}"/>
</StackPanel>
三、控件之间的绑定
使用ElementName绑定控件,Path选择要绑定的属性
<Border BorderBrush="Gray" BorderThickness="1" Margin="10" Padding="8">
<DockPanel>
<Label Content="请选择一个颜色"/>
<ComboBox Name="ComboBox01" SelectedIndex="0">
<ComboBoxItem>Green</ComboBoxItem>
<ComboBoxItem>blue</ComboBoxItem>
<ComboBoxItem>red</ComboBoxItem>
</ComboBox>
<Canvas>
<Canvas.Background>
<Binding ElementName="ComboBox01" Path="SelectedItem.Content"/>
</Canvas.Background>
</Canvas>
</DockPanel>
</Border>
写在最后
本博文只是在学习c#的过程中所做的笔记,方便以后查阅实现过程。资料均来自网上,如果有侵权请联系我删除,谢谢。