我们遇到的问题是,当使用视图模型优先方法时,我们无法在我们的 prism silverlight 应用程序中进行绑定。视图优先方法工作正常。我们浏览了官方文档和各种网站,但仍未解决问题。下面是视图模型优先和视图优先方法的代码。我们错过了什么吗?在我的博客http://silvercasts.blogspot.com上阅读它
视图模型优先方法:
引导程序:
internal void RegisterLoginRegionAndView()
{
IRegionManager regionManager = Container.Resolve<IRegionManager>();
regionManager.RegisterViewWithRegion(ShellRegionNames.MainRegion,
() => Container.Resolve<IViewModel>().View);
}
视图模型:
public ViewModel(IView view)
{
View = view;
View.SetModel(this);
User = new User();
User.Username = "TestUser";
}
视图模型接口:
public interface IViewModel
{
IView View { get; set; }
}
查看界面:
public interface IView
{
void SetModel(IViewModel model);
}
查看 Xaml:
<TextBox x:Name="Username" TextWrapping="Wrap" Text="{Binding User.Username}" />
查看后面的代码:
public void SetModel(IViewModel viewModel)
{
this.DataContext = viewModel;
}
查看第一种方法
引导程序:
regionManager.RegisterViewWithRegion(ShellRegionNames.MainRegion, typeof(IView));
视图模型:
public ViewModel()
{
User = new User();
User.Username = "TestUser";
}
查看后面的代码:
public View(IViewModel viewModel)
{
InitializeComponent();
this.DataContext = viewModel;
}