<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      地平線

      ......

      Binding ConvererParameter

      WPF中ConverterParameter不可以綁定,可以通過如下擴展來實現ConverterParameter的Binding:

       

      1.自定義ConverterBindableBinding和MultiValueConverterAdapter:

       

      namespace TTSControl.UtilityClasses
      {
          public class ConverterBindableBinding : MarkupExtension
          {
              public Binding Binding { get; set; }

              public IValueConverter Converter { get; set; }

              public Binding ConverterParameterBinding { get; set; }

              public Binding ConverterBinding { get; set; }

              public override object ProvideValue(IServiceProvider serviceProvider)
              {
                  MultiBinding multiBinding = new MultiBinding();
                  multiBinding.Bindings.Add(Binding);
                  multiBinding.Bindings.Add(ConverterParameterBinding);
                  if (ConverterBinding != null) multiBinding.Bindings.Add(ConverterBinding);
                  MultiValueConverterAdapter adapter = new MultiValueConverterAdapter();
                  adapter.Converter = Converter;
                  multiBinding.Converter = adapter;
                  return multiBinding.ProvideValue(serviceProvider);
              }
          }
      }

       

      namespace TTSControl.UtilityClasses
      {
          [ContentProperty("Converter")]
          public class MultiValueConverterAdapter : IMultiValueConverter
          {
              public IValueConverter Converter { get; set; }

              #region IMultiValueConverter Members

              private object lastParameter;
              private IValueConverter lastConverter;

              public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
              {
                  lastConverter = Converter;
                  if (values.Length > 1) lastParameter = values[1];
                  if (values.Length > 2) lastConverter = (IValueConverter)values[2];
                  if (Converter == null) return values[0];
                  return Converter.Convert(values[0], targetType, lastParameter, culture);
              }

              public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
              {
                  if (lastConverter == null) return new object[] { value };
                  return new object[] { lastConverter.ConvertBack(value, targetTypes[0], lastParameter, culture) };
              }

              #endregion

          }
      }

      2。在xaml中綁定:

      xmlns:uti="clr-namespace:TTSControl.UtilityClasses"        

       

       
       Binding="{Binding PermissionKey}" Converter="{StaticResource permissionValueConverter}"ConverterParameterBinding="{Binding UserName}" />
       

       

      3。在自定義Converter類中獲取綁定數據:

       

          internal class PermissionValueConverter : DependencyObject, IValueConverter, IMultiValueConverter
          {
             
              // For testing of converter properties, we derice from DependencyObject and add a dependency property.

              public String UserName
              {
                  get { return (String)GetValue(UserNameProperty); }
                  set { SetValue(UserNameProperty, value); }
              }

              // Using a DependencyProperty as the backing store for ConcatSign.  This enables animation, styling, binding, etc...
              public static readonly DependencyProperty UserNameProperty =
                  DependencyProperty.Register("UserName", typeof(String), typeof(PermissionValueConverter), new UIPropertyMetadata(null));

              #region IValueConverter Members

              public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
              {
                  string permissionKey = (string)value;
                  string  userName= (string)parameter;

                  List> PermissionValues = new List>();
                  PermissionValues = Database.GetPermissionValue(Properties.Settings.Default.gLanguage, userName, permissionKey);
                  return PermissionValues;
        
              }

              public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
              {
                  throw new NotImplementedException();
              }

              #endregion

              #region IMultiValueConverter Members

              public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
              {
                  return Convert(values[0], targetType, values[1], culture);
              }

              public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
              {
                  return new object[] { ConvertBack(value, targetTypes[0], parameter, culture) };
              }

              #endregion

          }

      posted on 2014-06-12 17:13  煙灰缸  閱讀(644)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 97超级碰碰碰久久久久app| 99久久久国产精品消防器材| 欧美色综合天天久久综合精品| 亚洲a免费| 日本一区二区三区有码视频| 欧美性69式xxxx护士| 各种少妇wbb撒尿| 精品国产免费人成网站| 在线 欧美 中文 亚洲 精品| AI做受???高潮AAAA视频| 国产精品伦人一久二久三久| 99久久成人国产精品免费| 澄江县| 人成午夜免费大片| 欧美激情 亚洲 在线| 亚洲人成网网址在线看| 日日躁夜夜躁狠狠久久av| 亚洲精品福利一区二区三区蜜桃| 亚洲av乱码一区二区| 亚洲色大成网站WWW永久麻豆| 精品视频不卡免费观看| 无套后入极品美女少妇| 一区二区三区无码免费看| 亚洲一区国色天香| 一区二区三区四区亚洲自拍| 日本一区不卡高清更新二区| 人妻精品动漫h无码| 丁香五月亚洲综合在线国内自拍| 少妇粗大进出白浆嘿嘿视频| 亚洲av第二区国产精品| 九九热在线视频免费播放| 国产高清在线精品一本大道| 久久婷婷大香萑太香蕉AV人| 蜜臀午夜一区二区在线播放| 亚洲精品专区永久免费区| 在线观看无码av免费不卡网站 | 欧美韩中文精品有码视频在线| 思热99re视热频这里只精品| 99久久无色码中文字幕| 亚洲情A成黄在线观看动漫尤物| 久久av无码精品人妻出轨|