amir moradifard
amir moradifard

Reputation: 353

WPF ValidationRule - How to Compare two values with each other

I am newbie in WPF and now I am struggling with its Validation. In the validate method of my Validation class I need to compare TextBox1's value with TextBox2's both included in my form.

Is there any way to do so in WPF?

Upvotes: 2

Views: 883

Answers (1)

Vishal
Vishal

Reputation: 624

How about this- Xaml.cs file

    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 file-

<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>

Upvotes: 1

Related Questions