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



       

  • 相关阅读:
    查找一 线性表的查找
    排序八 基数排序
    Numpy数组的保存与读取方法
    编写你的第一个django应用程序3
    查看当前目录的文件
    requests不加代理
    .idea文件夹是干嘛的
    python获取当前的时间
    redis命令
    windows下python安装face_recognition模块
  • 原文地址:https://www.cnblogs.com/mrfangzheng/p/1236265.html
Copyright © 2011-2022 走看看