最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于WPF使用MultiConverter控制Button狀態(tài)的詳細(xì)介紹

 更新時間:2013年04月18日 10:45:08   作者:  
本篇文章小編將為大家介紹,關(guān)于WPF使用MultiConverter控制Button狀態(tài)的詳細(xì)介紹。需要的朋友參考下

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

按鈕XAML

復(fù)制代碼 代碼如下:

<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判斷
復(fù)制代碼 代碼如下:

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;

      IList<bool> boollist = new List<bool>();

      for (int i = 0; i < paramlist.Length; i++)
      {
        switch (paramlist[i].ToLowerInvariant())
        {
          case "checknameexisted":
            boollist.Add(ValidationRuleHelper.Validate<InvalidCheckNameExistedValidationRule>(values[i]));
            break;
          case "directoryandfileexist":
            boollist.Add(ValidationRuleHelper.Validate<InvalidDirectoryAndFileExistValidationRule>(values[i]));
            break;
          case "greaterthanzerointeger":
            boollist.Add(ValidationRuleHelper.Validate<InvalidGreaterThanZeroIntegerValidationRule>(values[i]));
            break;
          case "numericnull":
            boollist.Add(ValidationRuleHelper.Validate<InvalidNumericNullValidationRule>(values[i]));
            break;
          case "stringlength":
            boollist.Add(ValidationRuleHelper.Validate<InvalidStringLengthValidationRule>(values[i]));
            break;
          case "stringnullorempty":
            boollist.Add(ValidationRuleHelper.Validate<InvalidStringNullOrEmptyValidationRule>(values[i]));
            break;
          case "ipaddress":
            boollist.Add(ValidationRuleHelper.Validate<InvalidIPAddressValidationRule>(values[i]));
            break;
          case "objectnull":
          default:
            boollist.Add(ValidationRuleHelper.Validate<InvalidObjectNullValidationRule>(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
  }

相關(guān)文章

  • ASP.NET OutputCache詳解

    ASP.NET OutputCache詳解

    這篇文章主要介紹了ASP.NET OutputCache詳解,本文詳細(xì)講解了OutputCache的語法、OutputCache的參數(shù)、OutputCache使用示例等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • asp.net下用js實(shí)現(xiàn)鼠標(biāo)移至小圖,自動顯示相應(yīng)大圖

    asp.net下用js實(shí)現(xiàn)鼠標(biāo)移至小圖,自動顯示相應(yīng)大圖

    asp.net下用js實(shí)現(xiàn)鼠標(biāo)移至小圖,自動顯示相應(yīng)大圖...
    2007-03-03
  • asp.net Reporting Service在Web Application中的應(yīng)用

    asp.net Reporting Service在Web Application中的應(yīng)用

    由于我們這個項(xiàng)目中使用微軟的報表服務(wù)(Reporting Services)作為報表輸出工具,本人也對它進(jìn)行一點(diǎn)點(diǎn)研究,雖沒有入木三分,但這點(diǎn)知識至少可以在大部分Reporting Service的場景中應(yīng)用。
    2008-11-11
  • Asp.net中使用Sqlite數(shù)據(jù)庫的方法

    Asp.net中使用Sqlite數(shù)據(jù)庫的方法

    Sqlite是最近比較流行的數(shù)據(jù)庫了,擁有比Access高效快速,易操作易實(shí)施。完全不需要在客戶端進(jìn)行任何的配置,只需要在站點(diǎn)中引用入DLL文件即可使用了。
    2009-11-11
  • asp.net中MVC借助Iframe實(shí)現(xiàn)無刷新上傳文件實(shí)例

    asp.net中MVC借助Iframe實(shí)現(xiàn)無刷新上傳文件實(shí)例

    這篇文章主要介紹了asp.net中MVC借助Iframe實(shí)現(xiàn)無刷新上傳文件的方法,詳細(xì)分析了前端界面、回調(diào)函數(shù)與后臺處理的詳細(xì)流程,非常具有參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • 小心!ASP.NET網(wǎng)站發(fā)布時的那些坑

    小心!ASP.NET網(wǎng)站發(fā)布時的那些坑

    ASP.NET網(wǎng)站發(fā)布時的那些坑,要小心了,為什么網(wǎng)站發(fā)布后,每個頁面第一次打開都很卡?ASP.NET session 頻繁丟失如何解決?具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • asp.net core 多文件分塊同時上傳的組件

    asp.net core 多文件分塊同時上傳的組件

    分享一個可多個文件同時上傳、斷點(diǎn)續(xù)傳,并實(shí)時反饋上傳進(jìn)度的 Asp.Net core 組件,本文通過實(shí)例代碼對asp.net core 多文件分塊同時上傳的組件知識介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-12-12
  • ASP.Net開發(fā)常見的一些問題總結(jié)

    ASP.Net開發(fā)常見的一些問題總結(jié)

    ASP.Net開發(fā)常見的一些問題總結(jié),需要的朋友可以參考一下
    2013-02-02
  • .Net Core配置Configuration具體實(shí)現(xiàn)

    .Net Core配置Configuration具體實(shí)現(xiàn)

    這篇文章主要介紹了.Net Core配置Configuration具體實(shí)現(xiàn),文中運(yùn)用大量代碼進(jìn)行講解,如果有對相關(guān)知識感興趣的小伙伴可以參考這篇文章,希望可以幫助到你
    2021-09-09
  • 實(shí)例說明asp.net中的簡單角色權(quán)限控制

    實(shí)例說明asp.net中的簡單角色權(quán)限控制

    權(quán)限控制在信息管理中屬于基本功能,權(quán)限控制中其中以Window權(quán)限為模型的角色用戶(也稱用戶組用戶)模型使用較多。本文以網(wǎng)站管理后臺權(quán)限控制為例簡要說明。
    2009-10-10

最新評論

丁青县| 托克逊县| 巴里| 子洲县| 临漳县| 淅川县| 安新县| 丹凤县| 瓦房店市| 武安市| 海阳市| 临江市| 天柱县| 玉溪市| 神农架林区| 高州市| 大丰市| 高尔夫| 大悟县| 多伦县| 鹤岗市| 蚌埠市| 宝坻区| 大英县| 霞浦县| 陆良县| 高安市| 阿巴嘎旗| 普陀区| 林芝县| 宜川县| 绵竹市| 师宗县| 杂多县| 卓尼县| 于都县| 泸溪县| 额敏县| 泗洪县| 平山县| 丰都县|