2
我無法觀察我的F#庫中的視圖模型通過XAML中的ContextBinding實例化。F#ViewModel沒有通過XAML中的BindingContext實例化
相反,我只觀察我的應用程序掛起(即黑屏)。
注:
我無法參考實際的F#項目(這是一個PCL),該港口的視圖模型。作爲一種解決方法,我瀏覽了包含viewmodel的DLL(即bin \ debug)的路徑。
在排除故障時,我確實觀察到C#項目中的視圖模型被實例化。但是,我的F#項目中的視圖模型沒有。
我的XAML如下:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:home="clr-namespace:Home.ViewModels;assembly=Home"
x:Class="FnTrade.MainPage">
<ContentPage.BindingContext>
<home:HomeViewModel />
</ContentPage.BindingContext>
</ContentPage>
我的F#項目中的視圖模型如下:
namespace Home.ViewModels
type HomeViewModel() =
let foo = "Hello World" // Breakpoint never gets hit
我的視圖模型並通過XAML引用C#,當實例化實施:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:FnTrade;assembly=FnTrade"
x:Class="FnTrade.MainPage">
<ContentPage.BindingContext>
<local:ViewModel />
</ContentPage.BindingContext>
</ContentPage>
下面是在C#中的視圖模型:
namespace FnTrade
{
public class ViewModel
{
public ViewModel() { } // Breakpoint DOES get hit
}
}
可以給我這樣的人解釋爲什麼我寫在F#視圖模型不實例化?
你不是以前有類似的問題? –
是的。然而,由於具有XAML依賴性,有用的異常正在被吞噬。我在使用代碼隱藏進行故障排除時發現了此問題。 –
請注意,如果您在代碼中構造類型,通常這會更容易診斷,而不是xaml –