Path
If the object in the DataContext has is another object with properties then you can bind to it's properties by using a fullstop.
Converter
Converter : StaticResource declared in Resources. Converter is defined in codebehind and implements IValueConverter
Indexed Bindings
You can bind to any collection that has an index (is IEnumerable). If the collection is a key/value collection such as Dictionary or Hash,then the item can be referenced by the item's key.
<TextBlock Text="{Binding Path=PropertyName}" /> <TextBlock Text="{Binding PropertyName}" />
Path : Name of the property on the object in the Datacontext of the page. The Path keyword is optional. The two lines above are functionally identical.
<TextBlock Text="{Binding Path=Instance.PropertyName}" />
If the object in the DataContext has is another object with properties then you can bind to it's properties by using a fullstop.
ElementName
<TextBox x:Name="SomeTextBox" /> <TextBlock Text="{Binding ElementName=SomeTextBox,Path=Text}" />
ElementName : Specifies another element in the view tree to bind to. Path : The property on the source element to bind from.
Converter
<UserControl.Resources> <BindingsProject:TextToColourConverter x:Key="TextToColourConverter" /> </UserControl.Resources> <Grid x:Name="LayoutRoot"> <StackPanel> <TextBox x:Name="SomeTextBox" /> <TextBlock Text="{Binding ElementName=SomeTextBox,Path=Text}" /> <TextBlock Text="Test text" Foreground="{Binding ElementName=SomeTextBox,Path=Text,Converter={StaticResource TextToColourConverter}}" /> </StackPanel> </Grid>
public class TextToColourConverter: IValueConverter { public object Convert(object value,Type targettype,object parameter,CultureInfo culture) { return someConvertedValue; } public object ConvertBack(object value,CultureInfo culture) { return someConvertedBackValue; } }
Converter : StaticResource declared in Resources. Converter is defined in codebehind and implements IValueConverter
ConverterParameter
<TextBlock Text="Test text" Foreground="{Binding ElementName=SomeTextBox,Converter={StaticResource TextToColourConverter},ConverterParameter=true}" /> <TextBlock Text="Test text" Foreground="{Binding ElementName=SomeTextBox,ConverterParameter='Blue'}" />
String parameters can be passed to the value converter. Unfortunately you can not bind to the ConverterParameter.
String Format
<TextBlock Text="{Binding Path=TimeWorked,StringFormat=hh\\:mm}" /> <TextBlock Text="{Binding Path=TimeWorked,StringFormat='h\\:mm'}" /> <TextBlock Text="{Binding Path=StartDate,StringFormat=D}" /> <TextBlock Text="{Binding Path=StartDate,StringFormat='MMM dd,yyyy'}" /> <TextBlock Text="{Binding Path=StartDate,StringFormat=MMM\ dd\,\ yyyy}" /> <TextBlock Text="{Binding Path=StartDate,StringFormat=yyyy-MM-dd}" />
Use apostrophes to enclose string formats with special characters,or use \ to escape the special character.
Null Value
<TextBlock Text="{Binding TotalAmount,TargetNullValue=0}" />
If the value from the bound property is null then it will be replaced with the TargetNullValue.
Indexed Bindings
<StackPanel> <TextBlock Text="{Binding Path=SimpleProp1}" /> <TextBox Text="{Binding Path=ComplexProp[0].SimpleSubProp,Mode=TwoWay}" Width="200" Height="60"/> <TextBox Text="{Binding Path=DictionaryCollection[mineral],Mode=TwoWay}" /> </StackPanel>
You can bind to any collection that has an index (is IEnumerable). If the collection is a key/value collection such as Dictionary or Hash,then the item can be referenced by the item's key.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。