123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
-
- ///////////////////////////////////////////////////////////////////////////////
- //Copyright (c) 2016, 北京探索者软件公司
- //All rights reserved.
- //文件名称: ValueCOnvertProxy.cs
- //文件描述: 转换器代理
- //创 建 者: xls
- //创建日期: 2017-1-11
- //版 本 号:1.0.0.0
- ////////////////////////////////////////////////////////////////////////////////
- using System;
- using System.Windows;
- using System.Windows.Data;
- namespace FWindSoft.Wpf
- {
- public class ValueConvertProxy : Freezable, IValueConverter
- {
- public static readonly DependencyProperty RealConvertProperty = DependencyProperty.Register("RealConvert", typeof(IValueConverter),
- typeof(ValueConvertProxy), new UIPropertyMetadata(null));
- /// <summary>
- /// 真实转换器
- /// </summary>
- public IValueConverter RealConvert
- {
- get { return (IValueConverter)GetValue(RealConvertProperty); }
- set { SetValue(RealConvertProperty, value); }
- }
- public static readonly DependencyProperty ParameterProperty = DependencyProperty.Register("Parameter", typeof(object),
- typeof(ValueConvertProxy), new UIPropertyMetadata(null));
- /// <summary>
- /// 关联参数
- /// </summary>
- public object Parameter
- {
- get { return (object)GetValue(ParameterProperty); }
- set { SetValue(ParameterProperty, value); }
- }
- public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- if (RealConvert == null)
- {
- return value;
- //return targetType.IsValueType ? Activator.CreateInstance(targetType) : null;
- }
- return RealConvert.Convert(value, targetType, Parameter??parameter, culture);
- }
- public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- if (RealConvert == null)
- {
- return value;
- //return targetType.IsValueType ? Activator.CreateInstance(targetType) : null;
- }
- return RealConvert.ConvertBack(value, targetType, Parameter ?? parameter, culture);
- }
- protected override Freezable CreateInstanceCore()
- {
- return new ValueConvertProxy(){RealConvert=this.RealConvert,Parameter=this.Parameter};
- }
- }
- }
|