zoukankan      html  css  js  c++  java
  • WPF Databinding examples

    1. 最简单的形式
      <TextBlock Text="{Binding ElementName=lbColor, Path=SelectedItem.Content}" />

      <TextBlock x:Name="tbSelectedColor"
          Text="{Binding ElementName=lbColor, Path=SelectedItem.Content, Mode=OneWay}"
          Background="{Binding ElementName=lbColor, Path=SelectedItem.Content, Mode=OneWay}"/>

      <TextBox x:Name="txtSelectedColor" 
          Text="{Binding ElementName=lbColor, Path=SelectedItem.Content, Mode=TwoWay}"
          Background="{Binding ElementName=lbColor, Path=SelectedItem.Content, Mode=OneWay}"/>
    2. Bingding to XML
      <ListBox x:Name="lbColor"
      IsSynchronizedWithCurrentItem="True"
      ItemsSource="{Binding Source={StaticResource MoreColors}, XPath=color/@name}"/>

      <CollectionViewSource x:Key="personView"
          Source="{Binding Source={StaticResource persons}}">
          <CollectionViewSource.SortDescriptions>
              <ComponentModel:SortDescription PropertyName="City" Direction="Ascending" />
              <ComponentModel:SortDescription PropertyName="FullName" Direction="Descending" />
          </CollectionViewSource.SortDescriptions>
      </CollectionViewSource>

      <StackPanel
          DataContext="{Binding Source={StaticResource personView}}" >
          <TextBlock Text="{Binding Path=FullName}"/>
          <TextBlock Text="{Binding Path=Title}"/>
          <TextBlock Text="{Binding Path=City}"/>
      </StackPanel>

    3. Binding C# code
      ---------------------------------------------------------------------------------------------
      public class Person : INotifyPropertyChanged
      {
          string _firstName;
          string _lastName;
    4.     public string FirstName
          {
              get { return _firstName; }
              set
              {
                  _firstName = value;
                  this.OnPropertyChanged("FirstName");
                  this.OnPropertyChanged("FullName");
              }
          }

          public string LastName
          {
              get { return _lastName; }
              set
              {
                  _lastName = value;
                  this.OnPropertyChanged("LastName");
                  this.OnPropertyChanged("FullName");
              }
          }

          public string FullName
          {
              get
              {
                  return String.Format("{0}, {1}",
                      this.LastName, this.FirstName);
              }
          }

          public event PropertyChangedEventHandler PropertyChanged;

          void OnPropertyChanged(string propName)
          {
              if (this.PropertyChanged != null)
                  this.PropertyChanged(
                      this, new PropertyChangedEventArgs(propName));
          }    
      }
      ---------------------------------------------------------------------------------------------
      var person = new Person { FirstName = "Josh", LastName = "Smith" };
      Binding b = new Binding();
      b.Source = person;
      b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
      b.Path = new PropertyPath("FirstName");
      this.firstNameTextBox.SetBinding(TextBox.TextProperty, b);



       

  • 相关阅读:
    4、配置解决中文乱码的过滤器
    3、请求参数绑定
    2、SpringMVC常用注解
    SpringMVC快速搭建
    深拷贝与浅拷贝笔记
    SpringBoot入门(三)——SpringData JPA
    SpringBoot入门(二)——Web
    SpringBoot入门(一)——HelloWorld、配置、日志
    Java SSM(十八)——Mybatis查缺补漏
    Java SSM(十七)——SpringMVC查缺补漏
  • 原文地址:https://www.cnblogs.com/mrfangzheng/p/1236265.html
Copyright © 2011-2022 走看看