1
如何访问嵌套在名称空间\模块路径中的视图模型?如何访问嵌套在命名空间模块路径中的视图模型?
例子:
namespace ManageModules
module CreateModule =
...
type CreationViewModel() =
inherit ViewModelBase()
下面的命名空间声明得到解决:
xmlns:manageModules="clr-namespace:ManageModules;assembly=ManageModules"
在下面的XAML代码:
<Window x:Class="Client.MainWindow"
. . .
xmlns:manageModules="clr-namespace:ManageModules;assembly=ManageModules"
. . . />
<Window.DataContext>
<manageModules:CreationViewModel />
</Window.DataContext>
Issue:
请注意,我的viewmodel不是直接位于名称空间下,而是名称空间\ module路径。
例子:
<Window.DataContext>
<manageModules:CreationViewModel />
</Window.DataContext>
这不起作用:
<Window.DataContext>
<manageModules:CreateModule.CreationViewModel />
</Window.DataContext>
结果,我无法设置DataContext的,因为提供的命名空间是不够的,以确定视图模型路径。
错误:
The name "CreationViewModel" does not exist in the namespace "clr-namespace:ManageModules;assembly=ManageModules".
我的视图模型如下:
namespace ManageModules
module CreateModule =
open System.Windows.Input
open UILogic.State
open UILogic.Interaction
open ManageModule.Entities
open System.Collections.ObjectModel
type CreationViewModel() =
inherit ViewModelBase()
let mutable (_modules:Module ObservableCollection) = ObservableCollection()
member this.Modules
with get() = _modules
and set(value) = _modules <- value
member this.Add moduleItem =
_modules.Add(moduleItem)
有你想看看与反思编译的程序集,或反编译,以便了解类型名称是什么? –
@ Mark Seeman - 好主意! –
我在我的博客上找到了一个解决方案。在我的文章中,我只有名字空间。因此,我没有申报模块。 https://bizmonger.wordpress.com/2015/11/25/mvvm-with-f-tutorial/ –