我正在阅读 C# WPF 书,在路由事件章节中,事件有 2 个相同的属性Source
and OriginalSource
。我没有看到它们之间的区别:
Xaml:
<Button Name="Ok" Click="Ok_Click"/>
背后代码:
private void Ok_Click(object sender, RoutedEventArgs e)
{
bool flag = false;
var source = e.Source;
var originalSource = e.OriginalSource;
if (source == originalSource)
{
flag = true;
}
}
and flag
财产true
在这里,有人可以解释为什么两个相同的属性或者在这种情况下这个属性没有效果吗?或者我们在哪里可以看到这个属性的用例?
一个控件中可以有其他控件作为子控件。当您从控件订阅事件时,您订阅的父级可能是e.Source
但是,如果控件有子控件,并且子控件是引发事件的控件,则OriginalSource
将是引发该事件的孩子。
一个常见的用例是订阅KeyDown事件在DataGrid
。源可能是网格,但原始源可能是单元格(或单元格中的某些组件)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)