WPF之Binding--02 (自定义类实现Binding与没有Path的Binding)
程序员文章站
2022-06-07 13:46:32
...
自定义类实现Binding
欲实现自定义的类的Binding,必须使得该类实现接口INotifyPropertyChanged。所以我们需要先using一下 System.ComponentModel。
简单举个例子:
using System.ComponentModel;
class Test : INotifyPropertyChanged
{
string name=null;
public event PropertyChangedEventHandler PropertyChanged;
public string Name
{
get { return name; }
set
{
name = value;
//激发事件
if(PropertyChanged!=null)
{
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Name"));
}
}
}
}
如此做,即可将Test类的实例作为Source,其Name属性作为Path,实现Binding了。
没有Path的Binding
通过WPF之Binding–01(快速入门与理解)对Path的认识,我们知道Binding之所以要指定Path是因为一个控件有多个属性,若是不设置Path,程序就不知道Binding这座桥梁该架向何处。但是,如果存在实例本身就是数据的情况就可以不指定Path属性。例如int,string这些基本类型就是这样。在这种情况下,我们使用Path=.的方式来表示。
代码如下:
<StackPanel>
<StackPanel.Resources>
<sys:String x:Key="TestString">
Hello World!
</sys:String>
</StackPanel.Resources>
<TextBox x:Name="t1" Margin="5" Text="{Binding Path=.,Source={StaticResource ResourceKey=TestString}}"/>
</StackPanel>
上一篇: 代码示例展现PHP二级联动菜单的实现