我有一个在c ++中编程创建的元素列表(不在XAML中)。我为hold事件添加了一个事件处理程序,如下所示:
listItem->Holding += ref new Windows::UI::Xaml::Input::HoldingEventHandler(this, &listItem_hold);
我已经定义了这样的事件处理程序:
void listItem_hold(Platform::Object^ sender, Windows::UI::Xaml::Input::HoldingRoutedEventArgs^ e);
有没有办法将自己的数据添加到HoldingRoutedEventArgs对象,以便我可以从事件处理程序中访问它? 我尝试从HoldingRoutedEventArgs创建一个派生类,但它是密封的,因此我不能将它用作基类。
谢谢!
答案 0 :(得分:0)
不直接。你不会触发Hold事件,因此不能控制传递的参数。
根据您想要的数据以及您想要存放的位置,间接地有几个选项。以下是两个要考虑的问题:
您可以将额外事件封装在事件处理程序本身中。使用属性创建一个类,以获取所需的任何额外信息以及事件处理程序方法。将Hold事件连接到自定义对象中的方法。该对象既可以做自己需要的任何事情,也可以使用自定义参数列表来提升自己的事件。
如果您希望将额外数据附加到发送listItem,则可以将其存储在项目上键入的字典中,或者创建附加属性并将其附加到项目。请参阅MSDN上的Custom attached properties。