2015-09-27 45 views
1

我使用行爲SDK的DataTrigerBehavior根據其他propery的值更改System.Windows.Shapes.Path.Data屬性,這是一個部分我的代碼:行爲SDK - ChangePropertyAction在運行時生成參數異常與.net本地編譯

<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.ArgumentException' 在Microsoft.Xaml.Interactions.dll

其他信息:找不到上鍵入Path名爲Data屬性。

爲什麼無法在Path類中找到Data屬性?

你能幫我嗎?

回答

2

行爲SDK和.NET Native似乎存在已知和報告的問題。

下面是連接錯誤報告報價:

當你在運行的版本,你是在.NET運行庫土著運行。在這裏需要注意的一點是,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

+0

謝謝,我已經加入以下爲我所有類型的線,這個問題消失了,但有時它還是老樣子產生新的異常:拋出異常:「System.ArgumentNullException」在System.Private.Interop。 dll 附加信息:值不能爲空。 異常拋出:System.Private.CoreLib.dll中的'System.Reflection.TargetInvocationException' – user3557176