WPF ValidationRule - 如何将两个值相互比较

时间:2013-08-06 10:59:37

标签: wpf validation binding validationrule

我是WPF的新手,现在我正在努力验证它。 在我的Validation类的validate方法中,我需要将TextBox1的值与TextBox2的值进行比较。

有没有办法在WPF中这样做?

1 个答案:

答案 0 :(得分:1)

这个怎么样 - Xaml.cs文件

    private string _Txt1;

            public string Txt1
            {
                get { return _Txt1; }
                set { _Txt1 = value;
                OnPropertyChanged("Txt1");
                }
            }

            private string _Txt2;

            public string Txt2
            {
                get { return _Txt2; }
                set
                {
                    _Txt2 = value;
                    OnPropertyChanged("Txt2");
                }
            }

     public event PropertyChangedEventHandler PropertyChanged;

            /// <summary>
            /// Called when [property changed].
            /// </summary>
            /// <param name="PropertyName">Name of the property.</param>
            private void OnPropertyChanged(string PropertyName)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
                }
            }

 private void textbox2_TextChanged(object sender, TextChangedEventArgs e)
        {
            Check();
        }

        private void textbox1_TextChanged(object sender, TextChangedEventArgs e)
        {
            Check();
        }

        public void Check()
        {
            if (Txt1 == Txt2)
            {
                MessageBox.Show("Values cant be same");
                Txt1 = "";
                Txt2 = "";
            }
        }

Xaml文件 -

<Grid>
        <TextBox Name="textbox1" Width="100" Height="20" TextChanged="textbox1_TextChanged" Text="{Binding Txt1,RelativeSource={RelativeSource AncestorType=Window},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
        <TextBox Name="textbox2" Width="100" Height="20" Margin="81,146,322,146" TextChanged="textbox2_TextChanged" Text="{Binding Txt2,RelativeSource={RelativeSource AncestorType=Window},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
    </Grid>