相关疑难解决方法(0)

有没有办法检查WPF当前是否在设计模式下执行?

有没有人知道一些可用的全局状态变量,以便我可以检查代码当前是否在设计模式下执行(例如在Blend或Visual Studio中)?

它看起来像这样:

//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode) 
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我需要这个的原因是:当我的应用程序在Expression Blend中以设计模式显示时,我希望ViewModel使用"Design Customer类",其中包含模拟数据,设计人员可以在设计模式下查看.

但是,当应用程序实际执行时,我当然希望ViewModel使用返回实际数据的真实Customer类.

目前我通过让设计人员在开始工作之前进入ViewModel并将"ApplicationDevelopmentMode.Executing"更改为"ApplicationDevelopmentMode.Designing"来解决这个问题:

public CustomersViewModel()
{
    _currentApplicationDevelopmentMode = ApplicationDevelopmentMode.Designing;
}

public ObservableCollection<Customer> GetAll
{
    get
    {
        try
        {
            if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)
            {
                return Customer.GetAll;
            }
            else
            {
                return CustomerDesign.GetAll;
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf expression-blend

140
推荐指数
6
解决办法
6万
查看次数

WYSIWYG视图创建的WPF设计器限制和规则摘要?

对于WPF/Silverlight/XAML4Win8/WP8/whathaveyou,视觉效果是由(我相信)创建自定义视图(window/page/usercontrol/whathaveyou)派生自的基类实例,然后应用XAML创建的.事后.

如果我没有弄错,这意味着类型构造函数中的代码隐藏将丢失.有没有办法在视图本身中执行设计时对象创建逻辑?更重要的是,在网上有一个很好的总结,了解Cider/Blend设计师如何在设计时实际创建所见即所得的视图?我好像在某处回忆起一些关于这个的文档(也许是Expression Studio的文档?)但是我找不到它们的生命.

c# wpf xaml design-time

5
推荐指数
1
解决办法
361
查看次数

标签 统计

c# ×2

wpf ×2

design-time ×1

expression-blend ×1

xaml ×1