Как выполнить привязку к полю статического класса в Windows Phone 7?

#windows-phone-7

#windows-phone-7

Вопрос:

Есть ли какой-либо способ, которым я могу выполнить привязку к полю в статическом классе в Windows phone 7?

В WPF я могу написать что-то вроде

 <ListBox ItemsSource="{Binding Source={x:Static local:TestStatic.Items}}" />
  

где TestStatic определяется как

 public static class TestStatic
{
    public static IEnumerable<string> Items
    { get { return new string[] { "Item A", "Item B", "Item C" }; } }
}
  

но это не работает в WP7, ошибка «Тип ‘x:Static’ не найден. …».

Есть ли у кого-нибудь предложения, как это сделать?

Комментарии:

1. Почему бы вам не сделать это в code behind? ItemsSource="{Binding}" и в коде за this.listbox.ItemsSource=TestStatic.Items

Ответ №1:

Вы не можете использовать расширение static markup в WP7 (которое я нахожу довольно раздражающим). Вам нужно будет использовать обходной путь, подобный тому, который предложил abhinav.

Комментарии:

1. Неприятно делать это в коде, тем более что Microsoft всегда говорит нам, что xaml — это решение для всего.

2. Я понимаю, что вы имеете в виду. В последнее время я обнаруживаю, что медленно возвращаюсь к своим старым привычкам WinForms : (