• WPF之Binding的三种简单写法


    环境

    类代码

    public class Person:INotifyPropertyChanged
    {
    private string name;
    public string Name
    {
    get { return this.name; }
    set
    {
    this.name = value;
    notifyPropertyChanged("Name");
    }
    }
    private int age;
    public int Age
    {
    get { return this.age; }
    set
    {
    this.age = value;
    notifyPropertyChanged("Age");
    }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    public void notifyPropertyChanged(string propertyName)
    {
    if (PropertyChanged != null)
    {
    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
    }

    窗体代码

    public partial class BindTest : Window
    {
    public Person per;
    public BindTest()
    {
    InitializeComponent();
    per = new Person { Age = 100, Name = "深入浅出WPF" };
    Binding b = new Binding();
    b.Source = per;
    b.Path = new PropertyPath("Name");
    BindingOperations.SetBinding(textbox, TextBox.TextProperty, b);
    box.DataContext = per;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {

    text.SetBinding(TextBox.TextProperty, new Binding("Name") { Source = per });
    }
    }

    XAML代码

    <StackPanel >
    <TextBox Margin="10" Height="40" x:Name="textbox"></TextBox>
    <TextBox Margin="10" Height="40" x:Name="text"></TextBox>
    <TextBox Margin="10" Height="40" Text="{Binding Name}" x:Name="box"></TextBox>
    <Button Height="40" Click="Button_Click"></Button>
    </StackPanel>

    三种写法

    1,

    C#

    per = new Person { Age = 100, Name = "深入浅出WPF" };

    Binding b = new Binding();

    b.Source = per;

    b.Path = new PropertyPath("Name");

    BindingOperations.SetBinding(textbox, TextBox.TextProperty, b);

    Xamll

    <TextBox Margin="10" Height="40" x:Name="textbox"></TextBox>

    2

    C#

    text.SetBinding(TextBox.TextProperty, new Binding("Name") { Source = per });

    Xaml

    <TextBox Margin="10" Height="40" x:Name="text"></TextBox>

    3

    C#

    InitializeComponent();

    box.DataContext = per;

    Xaml

    <TextBox Margin="10" Height="40" Text="{Binding Name}" x:Name="box"></TextBox>

    其中Text="{Binding Name}"与Text="{Binding Path=Name}"

  • 相关阅读:
    关于json解析和所需jar
    Solr初步使用
    Appium-desktop使用时的一些配置
    mac电脑安装和配置tomcat步骤
    maven-reportng插件依赖添加
    maven-surefire插件配置
    mac电脑的一些操作
    元素的多种延时等待(&页面的超时处理)
    Mac系统搭建java+selenium+testng环境
    爬虫简介与request模块
  • 原文地址:https://www.cnblogs.com/wangboke/p/5311336.html
Copyright © 2020-2023  润新知