2

How can I convince the WPF Designer in Visual Studio (2017) to preview the Prism bindings results at design-time? The bindings are working at runtime without any special configuration of ViewModelLocator.

Having this MainWindow:

<Window x:Class="ViewModelLocator.Views.MainWindow"
    ...
        prism:ViewModelLocator.AutoWireViewModel="True"
        Title="{Binding Title}">
    <Grid>
        <TextBlock Text="{Binding Title}" />
    </Grid>
</Window>

And this ViewModel:

namespace ViewModelLocator.ViewModels
{
    public class MainWindowViewModel : BindableBase
    {
        private string _title = "Prism Unity Application";
        public string Title
        {
            get { return _title; }
            set { SetProperty(ref _title, value); }
        }
    }
}

Sample copied from: https://github.com/PrismLibrary/Prism-Samples-Wpf/tree/master/08-ViewModelLocator

sa.he
  • 1,391
  • 12
  • 25

1 Answers1

2

It appears, that the problem has nothing to do with Prim (although I hoped to be served by prism with an automatic solution).

Just set the design time DataContext like this. This requires the MainWindowViewModel to implement a parameterless constructuor that builds the design time data.

<Window x:Class="ViewModelLocator.Views.MainWindow"
        ...        
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:vm="clr-namespace:ViewModelLocator.ViewModels"
        mc:Ignorable="d"
        d:DataContext="{d:DesignInstance vm:MainWindowViewModel, IsDesignTimeCreatable=True}"

        prism:ViewModelLocator.AutoWireViewModel="True"
        Title="{Binding Title}">
    <Grid>
        <TextBlock Text="{Binding Title}" />
    </Grid>
</Window>
sa.he
  • 1,391
  • 12
  • 25
  • You can vote for the resharper-bug associated with this: https://youtrack.jetbrains.com/issue/RSRP-385725 – Haukinger Dec 20 '18 at 11:19