C# 从代码隐藏设置Bing映射Silverlight控件属性
在第页加载控件之前,我需要从代码隐藏设置CredentialsProvider。我在代码隐藏中有“ApiKey”依赖属性,并将其绑定到Bing Maps silverlight控件,但它不起作用。它在运行时给出一个错误“无效凭据” 代码隐藏C# 从代码隐藏设置Bing映射Silverlight控件属性,c#,silverlight,bing-maps,C#,Silverlight,Bing Maps,在第页加载控件之前,我需要从代码隐藏设置CredentialsProvider。我在代码隐藏中有“ApiKey”依赖属性,并将其绑定到Bing Maps silverlight控件,但它不起作用。它在运行时给出一个错误“无效凭据” 代码隐藏 public static readonly DependencyProperty ApiKeyProperty = DependencyProperty.Register("ApiKey", typeof(string), typeof(MainPage)
public static readonly DependencyProperty ApiKeyProperty = DependencyProperty.Register("ApiKey", typeof(string), typeof(MainPage), new PropertyMetadata(""));
protected string ApiKey
{
get { return this.GetValue(ApiKeyProperty) as string; }
set { this.SetValue(ApiKeyProperty, value); }
}
XAML
类名是MainPage,并从UserControl继承。属性不是string类型,不会自动将字符串转换为
CredentialsProvider
实例(它将如何选择转换为哪个子类?)
最好从代码中公开
CredentialsProvider
实例。这样,您可以根据配置文件返回API密钥或客户端令牌。CredentialsProvider属性不是string类型,不会自动将字符串转换为CredentialsProvider
实例(它将如何选择转换为哪个子类?)
CredentialsProvider = new ApplicationIdCredentialsProvider("AbcdEfghIjklMNnoP_4rlMTclX8iXiNYUYQnG3GPYoxABCDEmoj3cCBemAAG")
最好从代码中公开
CredentialsProvider
实例。通过这种方式,您可以返回API密钥或客户端令牌,这可能取决于您的配置文件。经过许多努力,我终于发现,当Thread.CurrentUICulture设置为不变区域性时,就会发生这种情况。
CredentialsProvider = new ApplicationIdCredentialsProvider("AbcdEfghIjklMNnoP_4rlMTclX8iXiNYUYQnG3GPYoxABCDEmoj3cCBemAAG")
确保在App.Startup事件处理程序中将其设置为特定的区域性(同时考虑设置Thread.CurrentCulture),例如
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
当然,您仍然需要使用AppID正确设置凭据。HTH.经过许多努力,我终于发现,当Thread.CurrentUICulture设置为不变区域性时,就会发生这种情况。 确保在App.Startup事件处理程序中将其设置为特定的区域性(同时考虑设置Thread.CurrentCulture),例如
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
当然,您仍然需要使用AppID正确设置凭据。HTH.您确认ApiKey属性get正在返回您的有效密钥吗?我的问题是,这个问题太老了。我不使用它就解决了这个问题。我将在几天内标记答案检查谁获得最高票数。您是否确认ApiKey属性get返回的是您的有效密钥?我的问题太老了。我不使用它就解决了这个问题。我将在几天内标记谁获得最高投票数的答案检查。是的,我已经尝试过了,但CredentialsProvider是一个抽象类,我无法创建它的实例。您需要选择两个子类,具体取决于您希望如何通过Bing验证。这就是要点——字符串可以转换为这两个类中的任何一个,因此Bing不会自动为您转换字符串。阅读文档:是的,我已经尝试过了,但是CredentialsProvider是一个抽象类,我无法创建它的实例。您需要选择两个子类,具体取决于您想如何通过Bing验证。这就是要点——字符串可以转换为这两个类中的任何一个,因此Bing不会自动为您转换字符串。阅读文档: