- 最简单的形式
<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}"/> - 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> - Binding C# code
---------------------------------------------------------------------------------------------
public class Person : INotifyPropertyChanged
{
string _firstName;
string _lastName;
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);