zoukankan      html  css  js  c++  java
  • WPF 基础

    MultiBinding 与 Binding 一样继承自 BindingBase,因此可以使用 Binding 的地方都可以使用 MultiBinding。

    namespace System.Windows.Data
    {
        [ContentProperty("Bindings")]
        public class MultiBinding : BindingBase, IAddChild
        {
            ...
            public Collection<BindingBase> Bindings { get; }
        }
    }
    
    

    例子:
    在一个注册界面中,当两次输入的密码一致且邮箱不为空时,可以点击提交。

    <StackPanel Grid.Row="12">
        <TextBox x:Name="passwd"/>
        <TextBox x:Name="passwdConfirm"/>
        <TextBox x:Name="email"/>
        <Button x:Name="buttonSubmit" Content="click me" Width="100" HorizontalAlignment="Left" Click="buttonSubmit_Click"/>
    </StackPanel>
    
    public class LogonMultiBindingConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            if ( !values.Cast<string>().Any(text => string.IsNullOrWhiteSpace(text))
                && values[0].ToString() == values[1].ToString() 
                && !string.IsNullOrWhiteSpace(values[2].ToString()))
            {
                return true;
            }
    
            return false;             
        }
    
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
        
    Binding b1 = new Binding("Text") { Source = this.passwd };
    Binding b2 = new Binding("Text") { Source = this.passwdConfirm };
    Binding b3 = new Binding("Text") { Source = this.email };
    
    MultiBinding mb = new MultiBinding() { Mode=BindingMode.OneWay };
    mb.Bindings.Add(b1);
    mb.Bindings.Add(b2);
    mb.Bindings.Add(b3);
    mb.Converter = new LogonMultiBindingConverter();
    
    this.buttonSubmit.SetBinding(Button.IsEnabledProperty, mb);
    
  • 相关阅读:
    java第四次作业
    JAVA第三次作业
    Java第二次作业
    Java第一次作业
    android studio下载
    Android面试常问到的知识点
    [Java基础]List,Map集合总结
    搞ACM的你伤不起[转自RoBa]------(看一次,笑一次)
    06.5.1.Functions
    05.virsh命令的常用操作(kvm)
  • 原文地址:https://www.cnblogs.com/MichaelLoveSna/p/14444272.html
Copyright © 2011-2022 走看看