wpf值转换器用法

来源:互联网 发布:java 16进制中文 x 编辑:程序博客网 时间:2024/05/22 06:53

前台xaml

<Window x:Class="WpfApplication1.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        xmlns:local="clr-namespace:WpfApplication1"        Title="MainWindow" Height="350" Width="525">    <!--声明值转换器-->    <Window.Resources>        <local:ConverterTest x:Key="myConv"/>    </Window.Resources>    <Grid>        <DockPanel>            <TextBox x:Name="txtAge" DockPanel.Dock="Top" Text="{Binding Age,Converter={StaticResource myConv}}" IsReadOnly="True"></TextBox>            <Button Click="Button_Click"></Button>        </DockPanel>    </Grid></Window>

后台代码

using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace WpfApplication1{    /// <summary>    /// MainWindow.xaml 的交互逻辑    /// </summary>    public partial class MainWindow : Window, INotifyPropertyChanged    {        private int age;        public int Age        {            get            {                return age;            }            set            {                this.age = value;                if (PropertyChanged != null)                {                    PropertyChanged(this, new PropertyChangedEventArgs("Age"));                }            }        }        public MainWindow()        {            Age = 0;            InitializeComponent();            this.DataContext = this;        }        private void Button_Click(object sender, RoutedEventArgs e)        {            Age++;        }        public event PropertyChangedEventHandler PropertyChanged;    }}

值转换器代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace WpfApplication1{    class ConverterTest : System.Windows.Data.IValueConverter// 引用该接口并实现    {        // 输入转换到显示        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            return (System.Convert.ToDouble(value) + 0.5).ToString();        }        // 显示转换到输入        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            throw new NotImplementedException();        }    }}


原创粉丝点击