我正在修改我的软件,它有杂乱的Messenger.Default(...)位.
有没有任何备忘单知道MVVMLight SimpleIoc用法(不是一般的IoC描述)?
我正在将我的应用程序从.NET 3.5移动到.NET 4.0,并且我收到以下错误消息:"无法将页面放入样式".我已经为这个应用程序实现了MVVM模式,并使用数据模板告诉应用程序如何渲染我的各种视图模型......例如下面.
<DataTemplate DataType="{x:Type vm:ConfigureAxViewModel}">
<vw:ConfigureAxPage />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个错误?我是否必须进行页面控制?
谢谢,罗伊
我正在使用MVVM Light,我目前正在使用该软件包附带的SimpleIoC.我对依赖注入有点困惑.我想在视图模型中使用一堆服务,但是大多数窗口都是List-Edit范例,即一个屏幕列出所有类型Person,然后您可以Person通过新屏幕添加或编辑a .
当我在我的代码后面的代码中进行所有代码添加和编辑记录时如下:
视图
private void btnEdit_Click(object sender, RoutedEventArgs e)
{
_viewModel.Edit();
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
_viewModel.Add();
}
Run Code Online (Sandbox Code Playgroud)
查看模型
public void Add()
{
var f = new TypeDetails();
f.Show();
}
public void Edit()
{
if (SelectedItem == null)
return;
var f = new TypeDetails(SelectedItem.Id);
f.Show();
}
Run Code Online (Sandbox Code Playgroud)
构造函数TypeDetails如下:
public TypeDetails(int id = 0)
{
InitializeComponent();
_viewModel = new TypeDetailsViewModel(id);
DataContext = _viewModel;
}
Run Code Online (Sandbox Code Playgroud)
使用MVVM Light实现此类型功能最好的是什么?我一直在使用ViewModelLocatorList屏幕的类,但是我看不到使用SimpleIoC的方法.到目前为止,我的方法是保持构造函数相同,这工作正常,直到我需要将依赖项注入到TypeDetailsViewModel服务中.使用服务的构造函数TypeDetailsViewModel …
假设我有两页在WPF即Page1.xaml和Page2.xaml.我有一个名为的viewmodel PageViewModel.cs.这两个页面共享相同的viewmodel.
我可以通过两种方法编写代码:
Mehod1:
PageViewModel.cs
public static class PageViewModel
{
}
Run Code Online (Sandbox Code Playgroud)
的Page1.xaml
<Window.........>
<Window.DataContext>
<vm:PageViewModel />
</Window.DataContext>
</Window>
Run Code Online (Sandbox Code Playgroud)
Page2.xaml
<Window.........>
<Window.DataContext>
<vm:PageViewModel />
</Window.DataContext>
</Window>
Run Code Online (Sandbox Code Playgroud)
App.xaml中
Default xaml code.
Run Code Online (Sandbox Code Playgroud)
方法2:
PageViewModel.cs
public class PageViewModel
{
}
Run Code Online (Sandbox Code Playgroud)
的Page1.xaml
<Window DataContext={StaticResource PageViewModel}>
..........
..........
</Window>
Run Code Online (Sandbox Code Playgroud)
Page2.xaml
<Window DataContext={StaticResource PageViewModel}>
..........
..........
</Window>
Run Code Online (Sandbox Code Playgroud)
App.xaml中
<vm:PageViewModel x:Key="PageViewModel" />
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释上述两种方法之间的区别吗?