WPF綁定並轉換
阿新 • • 發佈:2018-01-03
span .com ase bsp setter spa 如何 clas rop
首先新建個項目,我的項目名叫BindConverterDemo,你的話什麽都可以,我這裏只是做demo
再建兩個類,DataDemo,ConverterDemo
這個是DataDemo類
public class DataDemo:INotifyPropertyChanged { private DateTime dateTime; public DataDemo() { dateTime = DateTime.Now; } public DateTime TheDateTime {get { return dateTime; } set { dateTime = value; } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string info) { PropertyChanged?.Invoke(this,new PropertyChangedEventArgs(info)); } }
publicclass ConverterDemo : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var date = (DateTime)value; switch (targetType.Name) { case "String": returndate.ToString("F",culture); case "Brush": return Brushes.Blue; default: return value; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } }
再來處理界面XAMl代碼,如下代碼所示
<StackPanel> <StackPanel.Resources> <local:DataDemo x:Key="DataDemos"/> <local:ConverterDemo x:Key="ConverterDemos"/> <Style TargetType="TextBlock"> <Setter Property="FontSize" Value="24"/> <Setter Property="Margin" Value="5"/> </Style> </StackPanel.Resources> <StackPanel.DataContext> <Binding Source="{StaticResource DataDemos}"/> </StackPanel.DataContext> <TextBlock Text="為轉換的數據:"/> <TextBlock Text="{Binding Path=TheDateTime}"/> <TextBlock Text="轉換的數據:"/> <TextBlock Foreground="{Binding Path=TheDateTime,Converter={StaticResource ConverterDemos}}"> <TextBlock.Text> <Binding Path="TheDateTime" Converter="{StaticResource ConverterDemos}"/> </TextBlock.Text> </TextBlock> </StackPanel>
然後看看運行的效果如何
謝謝,欣賞!本博客只用於學習用途。
WPF綁定並轉換