Контекст
Я хочу, чтобы мой UserControl
(RepositoryContainer
) был заполнен данными, когда на XAML Designer.
Я создал файл с именем RepositoryContainerDesignData.xaml
(он находится в той же папке, что и RepositoryContainer.xaml
), и установите его как d:DataContext
в UserControl
.
Но вместо отображения данных, XAML Designer отображает имя свойства.
Здесь минимальный пример:
Данные проектирования (RepositoryContainerDesignData.xaml)
<local:RepositoryContainer xmlns:local="clr-namespace:SystemSpecs.View.UserControls"
Title="My Repository Title"
/>
Пользовательский контроль (RepositoryContainer.xaml)
<UserControl x:Class="SystemSpecs.View.UserControls.RepositoryContainer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SystemSpecs.View.UserControls"
mc:Ignorable="d"
d:DesignHeight="100" d:DesignWidth="500"
d:DataContext="{d:DesignData Source=RepositoryContainerDesignData.xaml}"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<TextBlock Text="{Binding Path=Title}" FontSize="24" Foreground="White" HorizontalAlignment="Center" />
</Grid>
</UserControl>
Code-за
using System.Windows.Controls;
namespace SystemSpecs.View.UserControls
{
public partial class RepositoryContainer : UserControl
{
public string Title { get; set; }
public RepositoryContainer()
{
InitializeComponent();
}
}
}
Ожидаемый результат:
Вывод:
Уже пробовал:
- Установите
IsDesignTimeCreatable
какtrue
: - Закрытие Visual Studio и удаление папки
.vs
-
RepositoryContainerDesignData.xaml
Build Action
DesignData
Информация о среде:
- Windows 10 Pro x64
- Сообщество Visual Studio 2015 (версия 14.9.25431.01 Обновление 3)
- Microsoft.NET Framework 4.6.01586
- Дополнительная информация на Pastebin RAW, чтобы сохранить сообщение чистым
Я что-то пропустил?
PS
Если я создаю класс (например, public class RepositoryContainerData
), создайте свойство с именем Title
и установите экземпляр этого класса как d:DataContext
(d:DataContext="{d:DesignInstance local:RepositoryContainerData, IsDesignTimeCreatable=True}"
), он работает как ожидалось.