0
private void txt_f_name_TextChanged(object sender, TextChangedEventArgs e)
{
    string textbox_name_1,textbox_name_2;            

    TextBox textbox_1 = (TextBox)e.Source;
    textbox_name1= textbox_1.Text;

    TextBox textbox_2 = (TextBox)e.OriginalSource;
    textbox_name_2;= textbox_2.Text;            
}

现在两者textbox_name_1textbox_name_2得到相同的结果。

如果我尝试获取其他内容,例如文本,等等......这些也会得到相同的结果......

但我认为可能会有一些不同。

e.source所以,我想知道和之间的主要区别e.OriginalSource

4

2 回答 2

0

有情况来源和原始来源不同。

可以调整源的常见情况包括控件的内容模型中的内容元素(例如,列表项的内容会将列表项元素报告为 Source,而列表项中的实际元素将是 OriginalSource .

来自MSDN的参考:

我不确定你试图用你的代码做什么。要检查源和原始源文本属性,如下所示,您可以通过添加具有文本框的项目的列表视图来执行相同的操作。

private void txt_f_name_TextChanged(object sender, TextChangedEventArgs e)
{
    string textbox_name_1,textbox_name_2;            

    TextBox textbox_1 = (TextBox)e.Source;
    textbox_name1= textbox_1.Text;

    TextBox textbox_2 = (TextBox)e.OriginalSource;
    textbox_name_2 = textbox_2.Text;            
}
于 2012-06-02T10:26:35.417 回答
0

从文档

这个 originalsource 属性在调用类事件处理程序或任何实例处理程序之前获取其值一次,并且在此点之后永远不会调整。

对于路由事件,其他事件可能在您的处理程序之前触发。

[原始来源][1] http://msdn.microsoft.com/en-us/library/system.windows.routedeventargs.originalsource.aspx

于 2012-06-02T13:19:26.423 回答