Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从代码隐藏设置Bing映射Silverlight控件属性_C#_Silverlight_Bing Maps - Fatal编程技术网

C# 从代码隐藏设置Bing映射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)

在第页加载控件之前,我需要从代码隐藏设置CredentialsProvider。我在代码隐藏中有“ApiKey”依赖属性,并将其绑定到Bing Maps silverlight控件,但它不起作用。它在运行时给出一个错误“无效凭据”

代码隐藏

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不会自动为您转换字符串。阅读文档: