Что заставляет дизайнера Visual Studio использовать поддержку времени разработки - PullRequest
5 голосов
/ 26 марта 2012

У меня есть библиотека управления ac #, которая содержит мои модели, модели представления и представления.Я подключаю все, как обычно, но не получаю никакой обратной связи от дизайнера Visual Studio (смешиваемость).

Когда я загружаю свою сборку в проект WPF и включаю представление в качестве пользовательского пользовательского элемента управления, я 'Я получу отзыв о времени разработки.К сожалению, этот проект WPF является лишь тестовой оболочкой, потому что представление будет жить в другом приложении.

Было бы более эффективно для моего конвейера разработки, если бы у меня была возможность смешивания (время разработки) в моей библиотеке классов?Что заставляет визуальную студию работать, чтобы показать мой текст времени проектирования?

Я даже использую d:DataContext="{d:DesignInstance dd:DesignViewModel}" в моей библиотеке классов.Нет данных времени проектирования в библиотеке классов.

Ответы [ 2 ]

5 голосов
/ 27 марта 2012

Попробуйте

d:DataContext="{d:DesignInstance dd:DesignViewModel, IsDesignTimeCreatable=True}

Здесь есть блог , который также может вам помочь.

0 голосов
/ 18 октября 2015

Мне было очень неприятно создавать пустой конструктор для моих моделей представления или постоянно создавать производные классы, просто чтобы угодить конструктору WPF.

Одно решение, которое работает для меня (только для тестирования)с Visual Studio 2013) использует статическое свойство для предоставления экземпляра модели представления времени разработки, например

код C #

namespace WpfApplication2
{
    public class Person
    {
        public Person(string id)
        {
            Id = id;
        }

        public string Id { get; private set; }
    }

    public static class DesignViewModels
    {
        public static Person Person
        {
            get { return new Person("Design time person id"); }
        }
    }
}

и XAML

<Window x:Class="WpfApplication2.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                xmlns:my="clr-namespace:WpfApplication2"
                mc:Ignorable="d"
                Title="MainWindow" Height="350" Width="525">
    <d:DesignProperties.DataContext>
        <x:Static Member="my:DesignViewModels.Person" />
    </d:DesignProperties.DataContext>
    <TextBlock Text="{Binding Id}"/>
</Window>
...