простой список привязки данных Silverlight к списку <> - PullRequest
2 голосов
/ 16 июля 2010

Кажется, это должно быть просто ...
У меня есть пользовательский элемент управления, который я собираюсь использовать на нескольких вкладках элемента управления вкладками. Я хочу, чтобы все экземпляры usercontrol были синхронизированы.

В моем usercontrol у меня есть список строк:

public static List<string> fonts = new List<string>() { "Arial", "Courier" };

И ListBox:

<ListBox x:Name="fontList" ItemsSource="{Binding Path=fonts}" />

Однако список никогда не заполняется.
При поиске примера кода кажется, что я видел эту реализацию в нескольких примерах, но не могу заставить ее работать.
Спасибо за любые подсказки ...

Обновлено с предложениями AWJ, но все еще не работает:
MainPage.xaml.cs:

public partial class MainPage : UserControl
{
    public static List<string> _fonts
        = new List<string>() { "Arial", "Courier" };

    public List<string> Fonts { get { return _fonts;  } }
}

В TestGroup.xaml:

<ListBox x:Name="fontList1" ItemsSource="{Binding Parent.Fonts, ElementName=LayoutRoot}"  Margin="3" />

1 Ответ

4 голосов
/ 16 июля 2010
  • Прежде всего вы можете привязывать только свойства, а не поля.
  • Во-вторых, свойство должно быть свойством экземпляра для поддержки привязки
  • В-третьих, если вы не сделаете UserControl своим собственным DataContext, вам потребуется более сложное связывание.

В коде вам понадобится: -

public static List<string> fonts = new List<string>() { "Arial", "Courier" };
public List<string> Fonts {get { return fonts; } }

и в xaml: -

<ListBox x:Name="fontlist" ItemsSource="{Binding Parent.Fonts, ElementName=LayoutRoot}" />
...