Behavior SDK - ChangePropertyAction在运行时使用.net native编译时会生成参数

本文关键字:编译 native 参数 net SDK ChangePropertyAction 运行时 Behavior | 更新日期: 2023-09-27 18:14:37

我正在使用来自行为SDK的DataTrigerBehavior来根据其他属性的值更改system . windows . shape . path . data属性,这是我的代码的一部分:

 <Path x:Name="ItemPath" Stretch="Uniform" Grid.Column="0" Fill="#FF646464" Stroke="{x:Null}" StrokeThickness="3"> 
   <Interactivity:Interaction.Behaviors>
     <Core:DataTriggerBehavior Binding="{Binding FType, Converter={StaticResource EnumToStringConverter}}" Value="Parent"> 
       <Core:ChangePropertyAction TargetObject="{Binding ElementName=ItemPath}" PropertyName="Data" Value="M15,6H8V3c0-0.484-0.375-1-1-1C6.539,2,6.305,2.287,6,2.54L0.625,7C0.242,7.313,0,7.555,0,8s0.242,0.688,0.625,1L6,13.46  C6.305,13.713,6.539,14,7,14c0.625,0,1-0.516,1-1v-3h7c0.55,0,1-0.45,1-1V7C16,6.45,15.55,6,15,6z"/>
     </Core:DataTriggerBehavior>
  </Interactivity:Interaction.Behaviors>
</Path>

它工作得很好,而我没有用。net原生工具链编译项目,但在用。net原生编译项目后,我在运行时得到一个参数异常。

这是一个异常细节:

抛出异常:'System. '

microsoft . xml . interactions .dll中的ArgumentException'

附加信息:在类型Path上找不到名为Data的属性。

为什么在Path类中找不到Data属性?

你能帮我吗?

Behavior SDK - ChangePropertyAction在运行时使用.net native编译时会生成参数

行为SDK和。net Native似乎有一些问题,这些问题已经被知道并报告了。

下面是来自Connect bug报告的一段话:

当你在发行版中运行时,你是在。net Native运行时下运行的。这里需要注意的一点是,ChangePropertyAction在应用程序执行期间使用反射来理解您试图在元素上设置的属性和值。为了使反射在这些情况下在。net Native运行时中成功工作,您需要更新默认值。rd(默认情况下在项目的Properties文件夹中),其中包含您要访问的属性的类型信息。在这种情况下,您可以通过在default.rd.

中添加以下行来解决此问题。
<Type Name=”Windows.UI.Xaml.Shapes.Shape” Dynamic=”Required Public” />

请注意,对于项目中ChangePropertyAction引用的其他类型,您需要执行上述操作。

来源:ChangePropertyAction在发布模式UWP应用程序中出现异常