2016-05-06 5 views
3

Loadedイベントでxamlコンポーネントをロードしようとすると、XAMLParseExceptionが発生します。私は、処理されたイベントのメソッドシグネチャをどのように記述するかについてはあまりよく分かりません。 C#の例ははっきりしていますが、これをF#のバージョンに変換する方法がわかりません。私は以下に私の最初の試みを含めます。WPFを使用したF#のWindow Loadedイベントの呼び出しメソッド

のViewModelコード:

let theWindow = Application.LoadComponent(new Uri("/MyApp;component/MyWindow.xaml", UriKind.Relative)) :?> Window 

XAMLヘッダー:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   
    xmlns:converters="clr-namespace:MyApp.Converters;assembly=MyApp" 
    xmlns:local="clr-namespace:MyApp;assembly=MyApp" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" 
    xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"   
    x:Name="_theWindow" 
    WindowStartupLocation="CenterOwner" 
    Title="My App - Popup Window" 
    Loaded="Window_Loaded" 
    Icon="MyApp;component/icons/MyApp.ico" 
    Width="484.667" Height="215.333" 
    Left="100" Top="100"> 

F#方法:

member x.Window_Loaded (sender : object, eventArgs : RoutedEventArgs) = // Do stuff 
+0

例外メッセージとはなんですか? –

+0

例外がスローされました:PresentationFramework.dllの 'System.Windows.Markup.XamlParseException' 追加情報: '' Window_Loaded 'のテキストから' Loaded 'を作成できませんでした。行番号 '9'および行位置 '9'。 – user6301034

+0

C#で同等の試みができましたか? –

答えて

0

私が持っていたFsXaml.Wpfのv.3.1.3を使用して...

StartupUri="MainWindow.xaml" 

...私のapp.xamlファイルにあります。私はそれを削除し、MainWindow.xamlを開くために、私のApp.fsファイルでこれを使用...

[<STAThread>] 
[<EntryPoint>] 
let main argv = 
    Wpf.installSynchronizationContext() 
    Views.MainWindow() 
    |> App().Run 

... WpfMvvmAgentデモに一致しています。上記のXamlParseExceptionが解決されました。

関連する問題