c# - 使用来自 Xslt 处理器的参数动态加载 Xaml,发布绑定事件
问题描述
一个窗口加载一些动态 Xaml,这些 Xaml 使用 Xslt 进行转换以显示来自数据源的一些内容。因为 Xaml 是动态的,所以在加载之前我无法绑定事件 - 绑定本身没问题,但我正在努力寻找一种方法来描述源 Xaml 中的事件数据。
假设我的来源如下:
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<xsl:variable name="myValue" select="/root/System/CustomerFirstName"/>
<Label ##MyClick="method='myMethod', aParameter='$myValue', anotherParameter='test'"##>
<xsl:value-of select="/root/System/CustomerFirstName" />
</Label>
</Grid>
该代码将其通过 Xslt 处理器,如果 ## 之间的位被删除,该处理器可以完美运行。我理解为什么它不喜欢 MyClick 属性,因为它没有定义。我已经尝试添加一个附加属性,但 Xslt 解析器似乎并不知道它(也许我错过了一个连接)。我尝试添加扩展对象,但 Xslt 解析器希望在解析时调用该方法,而不是在用户单击 UI 元素时处理该位。
我想要的是 Xslt 解析器进行预处理,但保留在我的自定义标签中,以便处理任何内容:
<Label MyClick="method='myMethod', aParameter='Geoff', anotherParameter='test'"> [etc]
MyClick 内部文本的实际语法并不重要,只要 Xslt 完成后,我可以遍历生成的 Xaml 以查找任何定义了 MyClick 的节点并对内容进行自己的处理——在这种情况下绑定一个 Click 事件处理程序,然后用传递的参数做一些事情。
或许,另一种方式不是定义我的自定义行为的属性,而是 Label 元素内的子元素。我可以使用其中任何一个,例如:
<Label><MyClick><Method>wibble</Method><Parameter Name="name" Value="{$myValue}"></Parameter></MyClick></Label>
...之类的事情
非常感谢的想法。
解决方案
推荐阅读
- python - 从拆分洗牌的 CSV 文件创建数据框以匹配原始 CSV 文件,然后计算要匹配的总和
- rest - 使用 Drupal 8 Rest API 上传文件,但在 Postman 中出现边界错误
- javascript - 不要在成功函数中将数据提取到 dataTable
- java - 将值分配给数组会引发错误
- laravel - Laravel + Vuejs:使表格行中的所有文本颜色为红色/文本危险
- windows - 无法使用 dependency-check-sonar-plugin 获取 html 生成的报告
- vb.net - IEproxy 用户 + 通过身份验证
- reactjs - ReactJs 错误更新对象中的数组索引
- javascript - 如何从某个索引点向后循环数组
- javascript - Javascript Regex 仅删除标签