C# XAML中的DesignInstance,VS2017在设计时不显示数据
我在VS2017的UWP应用程序的设计阶段努力创建必要的数据。我在这里创建了一个简单的项目来处理我的问题。 在这种情况下,我的DesignInstance DataContext有什么问题? VS2017在设计期间没有显示任何内容-当我在page.resources中添加“真实”数据上下文时,它会显示数据 看法 作为博客文章的功能影响部分,您可以看到XAML设计器不支持示例数据,但支持设计器实例。有关XAML设计器更新的更多信息,请参阅博客C# XAML中的DesignInstance,VS2017在设计时不显示数据,c#,xaml,uwp,uwp-xaml,C#,Xaml,Uwp,Uwp Xaml,我在VS2017的UWP应用程序的设计阶段努力创建必要的数据。我在这里创建了一个简单的项目来处理我的问题。 在这种情况下,我的DesignInstance DataContext有什么问题? VS2017在设计期间没有显示任何内容-当我在page.resources中添加“真实”数据上下文时,它会显示数据 看法 作为博客文章的功能影响部分,您可以看到XAML设计器不支持示例数据,但支持设计器实例。有关XAML设计器更新的更多信息,请参阅博客 对于designer实例的问题,您可以关注此反馈并给出
对于designer实例的问题,您可以关注此反馈并给出您的想法。如果有对您很重要的功能,您也可以对其进行反馈。您的应用程序是否针对16299版本?我可以在16299的AppWitchTarget上复制它,但如果我更改目标版本15063,它就可以工作。我已经报告了,现在您可以尝试将您的应用程序定位在15063上,以便在设计时显示数据。
<Page
x:Class="SpeedboatExplorer.Views.WelcomePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SpeedboatExplorer.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:SpeedboatExplorer.ViewModels"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance viewModels:MockWelcomeViewModel, IsDesignTimeCreatable=True}">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBox Text="{Binding Input}"></TextBox>
<TextBox Text="{Binding Title}"></TextBox>
</Grid>
</Page>
namespace SpeedboatExplorer.ViewModels
{
public class MockWelcomeViewModel : INotifyPropertyChanged
{
private string _title;
private string _input;
public string Title
{
get { return _title; }
set
{
_title = value;
OnPropertyChanged(nameof(Title));
}
}
public string Input
{
get => _input;
set
{
_input = value;
OnPropertyChanged(nameof(Input));
}
}
public MockWelcomeViewModel()
{
_title = "Welcome Page";
_input = "input text";
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}