我正在使用Behaviors SDK中的DataTrigerBehavior根据其他属性的值更改System.Windows.Shapes.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 native编译项目后,我在运行时遇到了一个参数异常。
这是一个例外细节:
抛出异常:Microsoft.Xaml.Interactions.dll中的“System.ArgumentException”
其他信息:找不到类型为Path的名为Data的属性。
为什么在Path类中找不到Data属性?
你能帮助我吗?
答案 0 :(得分:2)
似乎已经知道并报告了Behaviors SDK和.NET Native的一些问题。
以下是Connect错误报告的引用:
在发布时运行时,您正在.NET Native运行时下运行。这里需要注意的一点是,ChangePropertyAction在应用程序执行期间使用反射来理解您尝试在元素上设置的属性和值。要使反射在.NET Native运行时在这些情况下成功运行,您需要使用您尝试访问的属性的类型信息更新default.rd(默认情况下在项目的Properties文件夹中)。在这种情况下,您可以通过将以下行添加到default.rd。
来解决此问题<Type Name=”Windows.UI.Xaml.Shapes.Shape” Dynamic=”Required Public” />
请注意,您需要对项目中ChangePropertyAction引用的其他类型执行上述操作。
来源:Exception occurs in ChangePropertyAction in release mode UWP application