我是WPF的新手,现在我正在努力验证它。 在我的Validation类的validate方法中,我需要将TextBox1的值与TextBox2的值进行比较。
有没有办法在WPF中这样做?
答案 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>