int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。 如果字符串为空,则抛出ArgumentNullException异常; 如果字符串内容不是数字,则抛出FormatException异常; 如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常; int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0
第一步:写UI控件及数据依赖
<StackPanel>
<Label Content="number 1"> </Label>
<TextBox Width="200" Margin="30" Text="{Binding Path=Num1 ,Mode=TwoWay}" ></TextBox>
<Label Content="number 2"></Label>
<TextBox Width="200" Margin="30" Text="{Binding Path=Num2 ,Mode=TwoWay}" ></TextBox>
<Label Content="resule"></Label>
<TextBox Width="200" Margin="30" Text="{Binding Path=Result ,Mode=TwoWay}" ></TextBox>
</StackPanel>
第二步:写Sum类
public class Sum : INotifyPropertyChanged
//该接口有一个事件,在属性发生改变时通知客户端
{
public event PropertyChangedEventHandler? PropertyChanged;private void OnpropertyChanged(string property)
{
if (PropertyChanged == null)
{
return;
}//属性改变时通知客户端
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
private string _num1;//加法第一个元素属性
private string _num2;//加法第二个元素属性
private string _result;//加法的运算结果public string Num1 //封装
{
get { return _num1; }
set
{
int number;
bool result= int.TryParse(value, out number);//转换成功则返回True
if (result)
{
_num1 = value;
OnpropertyChanged("Num1");
OnpropertyChanged(_result);
}
}
}
public string Num2
{
get { return _num2; }
set
{
int number;
bool result=int.TryParse(value, out number);
if (result)
{
_num2 = value;
OnpropertyChanged("Num2");
OnpropertyChanged(_result);
}
}
}
public string Result
{
get
{
int result=int.Parse(_num1)+int.Parse(_num2);
return result.ToString();
}
set
{
int result = int.Parse(_num1) + int.Parse(_num2);
_result = result.ToString();
OnpropertyChanged(_result);
}
}
}
第三部:UI 的逻辑树中进行绑定
public Sum Sum { get; set; } //增加一个属性
public MainWindow()
{
InitializeComponent();
Sum = new Sum() {Num1="1",Num2="2"};//初始化计算
this.DataContext = Sum;//绑定数据
}