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);



       

  • 相关阅读:
    The jQuery UI CSS Framework(中文说明)
    锁定表头和固定列(Fixed table head and columns)
    html5学习二(canvas)
    浅析深究什么是SOA
    页面加载完毕后执行js函数的方法
    Spring AOP详解(转)
    db2move详解
    DB2 命令总汇
    Ubuntu下Apache的配置
    maven打包的一些问题
  • 原文地址:https://www.cnblogs.com/mrfangzheng/p/1236265.html
Copyright © 2011-2022 走看看