WPF之Binding--02 (自定义类实现Binding与没有Path的Binding)

自定义类实现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>
发布了19 篇原创文章 · 获赞 3 · 访问量 6896

猜你喜欢

转载自blog.csdn.net/weixin_42132384/article/details/89163720