1. 程式人生 > >WPF綁定並轉換

WPF綁定並轉換

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

技術分享圖片

  public
class ConverterDemo : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var date = (DateTime)value; switch (targetType.Name) { case "String": return
date.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綁定並轉換