【问题标题】:Howto: WPF designer binding preview with Prism [duplicate]操作方法:使用 Prism 进行 WPF 设计器绑定预览 [重复]
【发布时间】:2019-05-20 21:15:29
【问题描述】:

如何说服 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

【问题讨论】:

    标签: wpf visual-studio prism designer


    【解决方案1】:

    看来,这个问题与 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>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2015-01-20
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    相关资源
    最近更新 更多