来自外部 XML 文件的设计时数据

发布于 2024-10-27 16:05:11 字数 121 浏览 1 评论 0原文

Visual Studio 2010 可视化设计器是否允许在设计时通过外部 XML 文件加载数据?

看来我可以通过 d:DataContext 添加它,但是我有很多数据,通过 XML 加载它更容易。那么这可能吗?

Does Visual Studio 2010 Visual Designer allow loading of data via external XML files during design time?

It appears that I can add it via d:DataContext, but I have a lot of data and it is easier to load it via XML. So is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毁梦 2024-11-03 16:05:11

您可以做的一件事是制作将在运行时使用的存储库(或其他对象)的设计时版本。我经常使用的一个简单方法如下。

在 App.xaml 中:

<Application ...>
  <Application.Resources>
    <local:MyClass x:key="DesignData"/>
  </Application.Resources>
</Application>

然后在类构造函数中,您可以检测到您处于设计模式并相应地填充数据:

public class MyClass
{
  public MyClass()
  {
    bool isInDesign = DesignerProperties.GetIsInDesignMode(new DependencyObject());
    if (isInDesign)
    {
      // Load your XML + other setup routines.
    }

    // Normal ctor code.
  }
}

最后,使用此项及其数据作为上下文。

<Window ...>
  <Grid d:DataContext="{StaticResource DesignData}">
    ...
  </Grid>
</Window>

这可能是可用于获取复杂设计时数据的最简单方法。当然,对于非常复杂的场景,您可能需要使用“MyClass”的子类或其他方法,但听起来您知道足以处理这个问题。从个人经验来看,您可以使用这种方法为您能想到的任何程序状态制作设计数据,如果您愿意,您甚至可以从数据库中提取实时数据。当然,您越早开始考虑应用程序中的设计数据,实际运行起来就越容易。

One thing you can do is make a design time version of the repository (or other object) that you would use during runtime. A simple approach that I use on a regular basis goes like so.

in App.xaml:

<Application ...>
  <Application.Resources>
    <local:MyClass x:key="DesignData"/>
  </Application.Resources>
</Application>

then in your class constructor you can detect that you are in design mode and populate the data accordingly:

public class MyClass
{
  public MyClass()
  {
    bool isInDesign = DesignerProperties.GetIsInDesignMode(new DependencyObject());
    if (isInDesign)
    {
      // Load your XML + other setup routines.
    }

    // Normal ctor code.
  }
}

Finally, use this item and its data as your context.

<Window ...>
  <Grid d:DataContext="{StaticResource DesignData}">
    ...
  </Grid>
</Window>

This is probably the simplest approach that you can use to get complex design time data. Of course you may need to use a subclass of 'MyClass' or other approaches for very complicated scenarios, but it sounds like you know enough to handle that. Speaking from personal experience you can use this approach to make design data for any program state that you can think of, and you can even go so far as to pull live data from a DB if you want. Of course, the earlier you start thinking about design data in your application the easier it will be to actually make it work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文