如何在WPF Visual Studio Designer中显示占位符值,直到可以加载实际值
我是一位经验丰富的C#开发人员,但是一名WPF新手。 基本问题(我认为)我无法通过网络搜索找到答案。 这是简化的用例……
我想在WPF TextBlock中显示一个字符串。 所以我在XAML控件的代码隐藏中编写了一些C#代码…
public class MyCoolControl : UserControl { public void InitializeMyCoolControl() { this.DataContext = "SomeStringOnlyAvailableAtRuntime"; // Perhaps from a database or something... } }
我设置了这样的XAML:
效果很好,我可以在执行应用程序时看到值“SomeStringOnlyAvailableAtRuntime”。 但是,我在Design Time使用Visual Studio 2008的XAML Designer时看不到任何内容。
如何在设计时查看文本块的占位符值(任何内容)?
谢谢!
-麦克风
在设计用户控件时,我经常在绑定上使用FallbackValue
来查看。 例如:
但是,由于FallbackValue
不仅仅是在设计时应用,如果您想在运行时出于其他原因使用FallbackValue
,这可能不合适。
在您的示例中,您可能需要使用TargetNullValue
,而不是FallbackValue
因为绑定表达式可能为null
因为DataContext
在设计时为null
。
如果绑定中给出的Path
不存在,则使用FallBackValue
,但由于未指定路径,因此我假设DataContext
将被计算为null
。
另请注意,需要.NET Framework 3.5 SP1,因为SP1中添加了这两个附加属性。
我不知道如何使用Visual Studio的编辑器执行此操作,但您可以使用Expression Blend执行此操作。
这里和文章描述了如何实现这一目标。
我希望MS将Blend和Visual Studio的function合并在一起,因为有一个包做一件事而另一件有点傻。 特别是当他们来自同一家公司时。
在这种情况下,使用MultiValueConverter或ViewModel对象处理对象加载并为您更新依赖项属性不是最佳选择吗?