Как получить доступ к переменной в DataContext из XAML (WPF)? - PullRequest
1 голос
/ 25 марта 2011

Например, у меня есть массив в CodeBehind, который я хочу привязать к DataGridComboBox в XAML.

Сначала я знаю, что должен поместить массив в DataContext (хорошо), но как мне получить доступ к массиву из XAML?

И как мне сделать ссылку в DataGridComboBox, чтобы связать элементы из массива в ComboBox?

Моя проблема связана с DataContext, я не могу понять, как работать с DataContext.

1 Ответ

3 голосов
/ 25 марта 2011

В WPF DataContext - это просто объект, который обеспечивает корневой путь для выражений привязки в XAML.

Так что, когда вы устанавливаете DataContext, возможно, в коде позади, как:

string[] DataArray = new[] { "John", "Peter", "Paul" };`
this.DataContext = DataArray;

Вы можете получить к нему доступ из XAML, например:

<TextBox Text="{Binding Path=Count}" />

Теперь вы получаете доступ к свойству Count в DataArray благодаря свойству DataContext.

Если вам нужен конкретный элемент массива, вы можете указать индекс:

<TextBox Text="{Binding Path=[0]}" />

Если вы хотите использовать массив в качестве источника для элемента, который поддерживает коллекцию:

<ItemsControl ItemsSource="{Binding}" />

Никакие аргументы выражения привязки просто не обращаются к DataContext напрямую, в данном случае к массиву.

Надеюсь, это поможет!

...