操作方法:使用 Prism 进行 WPF 设计器绑定预览

Howto: WPF designer binding preview with Prism

如何说服 Visual Studio (2017) 中的 WPF 设计人员在设计时预览 Prism 绑定结果?绑定在运行时运行,无需对 ViewModelLocator 进行任何特殊配置。

有这个主窗口:

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

还有这个 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); }
        }
    }
}

示例复制自:https://github.com/PrismLibrary/Prism-Samples-Wpf/tree/master/08-ViewModelLocator

看来,这个问题与Prim无关(虽然我希望通过prism提供自动解决方案)。

只需像这样设置设计时DataContext。这需要 MainWindowViewModel 实现构建设计时数据的无参数构造函数。

<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>