In the view model the setmodel method must be called after the data
objects are instantiated!

On Sep 23, 10:53 am, chrismaduro <[email protected]> wrote:
> The problem we are having is that we cannot get binding to work in our
> prism silverlight application when using the view-model first
> approach. The view first approach work fine. We have gone over the
> official documentation and various web sites, but have still not
> resolved the issue. Below is the code for both the view-model first,
> and the view first approach. Are we missing something?
>
> View-Model first approach:
> ---------------------------------------
> Bootstrapper:
>
>         internal void RegisterLoginRegionAndView()
>         {
>             IRegionManager regionManager =
> Container.Resolve<IRegionManager>();
>
>             regionManager.RegisterViewWithRegion
> (ShellRegionNames.MainRegion,
>             () => Container.Resolve<IViewModel>().View);
>          }
>
> ViewModel:
>
>         public ViewModel(IView view)
>         {
>             View = view;
>             View.SetModel(this);
>
>             User = new User();
>             User.Username = "TestUser";
>         }
>
> ViewModel Interface:
>
>     public interface IViewModel
>     {
>         IView View { get; set; }
>     }
>
> View Interface:
>
>     public interface IView
>     {
>         void SetModel(IViewModel model);
>     }
>
> View Xaml:
>            <TextBox x:Name="Username"
>                     TextWrapping="Wrap"
>                     Text="{Binding User.Username}" />
>
> View Code Behind:
>         public void SetModel(IViewModel viewModel)
>         {
>             this.DataContext = viewModel;
>         }
>
> View first approach
> -----------------------------
>
> Bootstrapper:
>             regionManager.RegisterViewWithRegion
> (ShellRegionNames.MainRegion,
>             typeof(IView));
>
> ViewModel:
>         public ViewModel()
>         {
>             User = new User();
>             User.Username = "TestUser";
>
> }
>
> View Code Behind:
>         public View(IViewModel viewModel)
>         {
>             InitializeComponent();
>             this.DataContext = viewModel;
>         }

Reply via email to