настройка Bing Maps Silverlight Control Свойство из кода сзади - PullRequest
0 голосов
/ 06 августа 2010

Мне нужно установить 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

<m:Map x:Name="map" Grid.Row="1" Grid.ColumnSpan="5" Margin="0" CredentialsProvider="{Binding ElementName=silverlightMap, Path=ApiKey}" 
               Mode="Road" MouseMove="map_MouseMove" MouseLeftButtonUp="map_MouseLeftButtonUp" MouseLeftButtonDown="map_MouseLeftButtonDown"
               ViewChangeEnd="map_ViewChangeEnd"></m:Map>

Имя класса MainPage и наследуется от UserControl.

Ответы [ 3 ]

6 голосов
/ 30 мая 2011
CredentialsProvider = new ApplicationIdCredentialsProvider("AbcdEfghIjklMNnoP_4rlMTclX8iXiNYUYQnG3GPYoxABCDEmoj3cCBemAAG")
0 голосов
/ 31 мая 2011

После долгих трудностей я, наконец, обнаружил, что это происходит, когда Thread.CurrentUICulture настроен на инвариантную культуру.Убедитесь, что в обработчике событий App.Startup задана конкретная культура (рассмотрите также настройку Thread.CurrentCulture), например,

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");

Конечно, вам все равно необходимо правильно установить учетные данные, используя ваш AppID.НТН.

0 голосов
/ 07 августа 2010

Свойство CredentialsProvider не относится к типу string и автоматически не преобразует строки в экземпляр CredentialsProvider (как бы он выбрал подкласс для преобразования?)лучше всего разоблачить экземпляр CredentialsProvider из вашего кода.Таким образом, вы можете вернуть либо ключ API, либо клиентский токен, возможно, на основе вашего файла конфигурации.

...