如何在调试配置中禁用XAML条目?

时间:2012-05-03 14:47:12

标签: silverlight debugging bing-maps

如何在XAML中使用类似“#if”指令的内容。我已经为我的Bing地图控件宣布了一个凭据密钥,我想在我不在的时候关闭密钥。关键是在资源字典中。如何在调试中禁用它?

2 个答案:

答案 0 :(得分:1)

我没有测试过这个,但我想知道这个或类似的东西是否会起作用。

您可以在地图的DataContext(视图模型或其他)中声明此公共属性。

public CredentialsProvider MyCredentialsProvider
{
#if DEBUG
    return null;
#else
    return new ApplicationIdCredentialsProvider(MyResources.MyCredentialsKey);
#endif
}

MSDN说我们应该使用ApplicationIdCredentialsProvider。)

然后你可以简单地绑定到这个属性,因为CredentialsProviderdependency property

<m:Map CredentialsProvider="{Binding MyCredentialsProvider}"/>

答案 1 :(得分:1)

我最近发布了一篇博客帖子Managing the Visibility of Xaml Elements in Cross Platform Applications,其中介绍了如何根据构建是Silverlight还是WPF来显示或隐藏Xaml。

这基本上使用了附加属性,当按如下方式应用时,将隐藏(或显示)元素:

local:FrameworkVisibilityManager.VisibleIn="Silverlight"

// OR 

local:FrameworkVisibilityManager.VisibleIn="Wpf"

不幸的是,根据配置无法排除Xaml,但您当然可以根据配置更改可见性等属性。

使用上面的方法,您可以创建一个名为DebugCredentialsProvider的附加属性,只有在Debug中才会将凭据应用于Bing Maps控件。