【问题标题】:How to pass extra arguments to holding event in wp8.1如何在 wp8.1 中将额外的参数传递给举行事件
【发布时间】:2014-11-15 00:32:47
【问题描述】:

我有一个在 c++ 中(不是在 XAML 中)以编程方式创建的元素列表。我为holding事件添加了一个事件处理程序,如下所示:

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 创建一个派生类,但它是密封的,所以我不能将它用作基类。

谢谢!

【问题讨论】:

  • 感谢罗伯·卡普兰!这对我来说似乎是一个很好的解决方案!

标签: c++ events arguments windows-phone-8.1


【解决方案1】:

不直接。您不会触发 Hold 事件,因此无法控制传递的参数。

根据您想要的数据和存放位置,间接地有几个选项。这里有两个需要考虑:

您可以将额外的事件封装在事件处理程序本身中。使用您想要的任何额外信息的属性和事件处理程序方法创建一个类。将 Hold 事件连接到自定义对象中的方法。该对象可以在其内部执行任何需要的操作,也可以使用自定义参数列表引发自己的事件。

如果您希望将额外数据附加到发送列表项,那么您可以将其存储在以项目为键的字典中,或者创建附加属性并将其附加到项目。请参阅 MSDN 上的 Custom attached properties

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 2012-09-01
    • 2019-09-18
    • 2018-10-07
    • 1970-01-01
    • 2020-03-15
    相关资源
    最近更新 更多