婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 關于WPF使用MultiConverter控制Button狀態的詳細介紹

關于WPF使用MultiConverter控制Button狀態的詳細介紹

熱門標簽:內蒙古智能電銷機器人哪家強 怎樣在地圖標注消火栓圖形 地圖標注位置多的錢 杭州智能電話機器人 百度地圖標注點擊事件 泰州手機外呼系統軟件 山東防封電銷卡辦理套餐 廈門四川外呼系統 濟源人工智能電話機器人價格

需求描述
1.按鈕的狀態需要根據多個數據源的內容作出不同的組合判斷
2.每個數據源的判斷規則可定制
注:以下功能感覺只是簡單粗暴的實現,如果您了解更優雅的解決方案,煩請告訴我下,感謝先!

按鈕XAML

復制代碼 代碼如下:

Button Name="btnOK"
                 Grid.Column="2"
                 HorizontalAlignment="Left"
                 VerticalAlignment="Center"
                 Command="{Binding Path=OKCommand}"
                 Content="{DynamicResource Common_Button_OK}"
                 IsDefault="True"
                 Style="{DynamicResource ButtonStyle}">
           Button.IsEnabled>
             MultiBinding Converter="{StaticResource InvalidMultiValidationRuleToBooleanMultiConverter}"
               ConverterParameter="objectnull|greaterthanzerointeger|greaterthanzerointeger|greaterthanzerointeger">
               Binding ElementName="comboBoxFilter"
                        Mode="OneWay"
                        Path="SelectedItem" />
               Binding ElementName="textBoxFrameRate"
                        Mode="OneWay"
                        Path="Text" />
               Binding ElementName="textBoxSizeWidth"
                        Mode="OneWay"
                        Path="Text" />
               Binding ElementName="textBoxSizeHeight"
                        Mode="OneWay"
                        Path="Text" />
             /MultiBinding>
           /Button.IsEnabled>
         /Button>

MultiConverter判斷
復制代碼 代碼如下:

public class InvalidMultiValidationRuleToBooleanMultiConverter : IMultiValueConverter
  {
    #region IMultiValueConverter Members

    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
      string[] paramlist = ((string)parameter).Split('|');
      if (paramlist == null || paramlist.Length = 0)
      {
        throw new ArgumentNullException("parameter");
      }
      int length = paramlist.Length;

      IListbool> boollist = new Listbool>();

      for (int i = 0; i paramlist.Length; i++)
      {
        switch (paramlist[i].ToLowerInvariant())
        {
          case "checknameexisted":
            boollist.Add(ValidationRuleHelper.ValidateInvalidCheckNameExistedValidationRule>(values[i]));
            break;
          case "directoryandfileexist":
            boollist.Add(ValidationRuleHelper.ValidateInvalidDirectoryAndFileExistValidationRule>(values[i]));
            break;
          case "greaterthanzerointeger":
            boollist.Add(ValidationRuleHelper.ValidateInvalidGreaterThanZeroIntegerValidationRule>(values[i]));
            break;
          case "numericnull":
            boollist.Add(ValidationRuleHelper.ValidateInvalidNumericNullValidationRule>(values[i]));
            break;
          case "stringlength":
            boollist.Add(ValidationRuleHelper.ValidateInvalidStringLengthValidationRule>(values[i]));
            break;
          case "stringnullorempty":
            boollist.Add(ValidationRuleHelper.ValidateInvalidStringNullOrEmptyValidationRule>(values[i]));
            break;
          case "ipaddress":
            boollist.Add(ValidationRuleHelper.ValidateInvalidIPAddressValidationRule>(values[i]));
            break;
          case "objectnull":
          default:
            boollist.Add(ValidationRuleHelper.ValidateInvalidObjectNullValidationRule>(values[i]));
            break;
        }
      }

      bool result = boollist[0];
      for (int i = 1; i boollist.Count; i++)
      {
        result = result boollist[i];
      }

      return result;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
      return null;
    }

    #endregion
  }

您可能感興趣的文章:
  • 解析WPF綁定層次結構數據的應用詳解
  • WPF的數據綁定詳細介紹
  • wpf將表中數據顯示到datagrid示例
  • 在WinForm和WPF中使用GMap.Net地圖插件簡單教程
  • 用WPF實現屏幕文字提示的實現方法
  • 解析WPF實現音頻文件循環順序播放的解決方法
  • 深入分析WPF客戶端讀取高清圖片卡以及縮略圖的解決方法詳解
  • 關于WPF異步MVVM等待窗體的介紹
  • 在Winform和WPF中注冊全局快捷鍵實現思路及代碼
  • WPF制作一個簡單的倒計時器實例附源碼
  • WPF綁定實例詳解

標簽:喀什 新鄉 臺州 朝陽 朔州 周口 洛陽 百色

巨人網絡通訊聲明:本文標題《關于WPF使用MultiConverter控制Button狀態的詳細介紹》,本文關鍵詞  關于,WPF,使用,MultiConverter,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于WPF使用MultiConverter控制Button狀態的詳細介紹》相關的同類信息!
  • 本頁收集關于關于WPF使用MultiConverter控制Button狀態的詳細介紹的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 镇平县| 苍山县| 通海县| 灵寿县| 吐鲁番市| 通化县| 家居| 枞阳县| 麻阳| 隆安县| 馆陶县| 咸宁市| 新源县| 中宁县| 襄垣县| 新郑市| 金华市| 长宁县| 兴隆县| 鸡东县| 如皋市| 娄底市| 堆龙德庆县| 庆元县| 林州市| 金山区| 忻州市| 南昌县| 从江县| 邵阳市| 通山县| 如皋市| 昌吉市| 遵化市| 河间市| 海城市| 虎林市| 贡山| 手机| 桑日县| 鄂尔多斯市|