如何在 XAML 中使用类似“#if”指令的东西。我已经为我的 Bing 地图控件声明了一个凭据密钥,并且我想在我不在的时候关闭该密钥。密钥在资源字典中。如何在调试中禁用它?
问问题
218 次
2 回答
1
我还没有测试过这个,但我想知道这个或类似的东西是否会起作用。
无论地图的 DataContext 是什么(视图模型或其他),您都可以声明此公共属性。
public CredentialsProvider MyCredentialsProvider
{
#if DEBUG
return null;
#else
return new ApplicationIdCredentialsProvider(MyResources.MyCredentialsKey);
#endif
}
(MSDN说我们应该使用ApplicationIdCredentialsProvider。)
然后你可以简单地绑定到这个属性,因为CredentialsProvider是一个依赖属性:
<m:Map CredentialsProvider="{Binding MyCredentialsProvider}"/>
于 2012-05-03T15:17:27.010 回答
1
我最近发布了一篇博客文章,管理跨平台应用程序中 Xaml 元素的可见性,其中描述了如何根据构建是 Silverlight 还是 WPF 来显示或隐藏 Xaml。
这基本上使用了一个附加属性,当应用如下时会隐藏(或显示)一个元素:
local:FrameworkVisibilityManager.VisibleIn="Silverlight"
// OR
local:FrameworkVisibilityManager.VisibleIn="Wpf"
不幸的是,没有办法根据配置排除 Xaml,但您当然可以根据配置更改诸如可见性之类的属性。
使用上述方法,您可以创建一个名为 DebugCredentialsProvider 的附加属性,该属性仅在 Debug 中将凭据应用于 Bing Maps 控件。
于 2012-05-03T15:21:48.647 回答