Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Xslt处理器动态加载带有参数的Xaml后绑定事件_C#_Wpf_Xaml_Xslt - Fatal编程技术网

C# 从Xslt处理器动态加载带有参数的Xaml后绑定事件

C# 从Xslt处理器动态加载带有参数的Xaml后绑定事件,c#,wpf,xaml,xslt,C#,Wpf,Xaml,Xslt,窗口加载一些动态Xaml,这些Xaml通过Xslt转换以显示数据源中的某些内容。因为Xaml是动态的,所以在加载事件之前我无法绑定事件-绑定本身是可以的,但是我正在努力找到一种方法来描述源Xaml中的事件数据 假设我的资料来源如下: <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <xsl:variable name="myValue" select="/root/Syste

窗口加载一些动态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处理器,如果删除了##之间的位,Xslt处理器就可以完美地工作。我理解为什么它不喜欢MyClick属性,因为它没有定义。我曾尝试添加一个连接,但Xslt解析器似乎不知道(可能我错过了一个连接)。我尝试添加扩展对象,但Xslt解析器希望在解析时调用该方法,而不是在用户单击UI元素时处理该位

我希望Xslt解析器进行预处理,但保留在自定义标记中,以便处理任何内容:

<Label MyClick="method='myMethod', aParameter='Geoff', anotherParameter='test'"> [etc]
[etc]
MyClick内部文本的实际语法并不重要,只要Xslt完成,我就可以遍历生成的Xaml,找到定义了MyClick的任何节点,并对内容进行自己的处理——在本例中,绑定一个Click事件处理程序,然后使用传递的参数执行操作

另一种可能的方法是,它不是定义自定义行为的属性,而是Label元素中的子元素。我可以使用其中一种,例如:

<Label><MyClick><Method>wibble</Method><Parameter Name="name" Value="{$myValue}"></Parameter></MyClick></Label>
wibble
……诸如此类


非常感谢您的想法。

您使用哪个XSLT处理器,如何运行它,您从XSLT处理器中得到的错误是什么?格式为
的文本结果元素在任何方面都不是XSLT处理器会失败的,它不需要任何结果元素或属性的定义。您是对的。。。引发异常的是XamlReader,而不是XslCompiledTransform。非常感谢。下次我需要更仔细地阅读。