2011-03-25 84 views
1

例如,我在CodeBehind中有一個數組,我想綁定到XAML中的DataGridComboBox。如何從XAML(WPF)訪問DataContext中的變量?

首先,我知道我必須將數組放在DataContext(ok)中,但是接下來我如何從XAML訪問數組?

我如何在DataGridComboBox中將數組中的項綁定到ComboBox中?

我的問題是使用DataContext,我無法真正理解如何使用DataContext。

回答

3

在WPF中,DataContext只是提供XAML中綁定表達式根路徑的對象。

所以,當你設置的DataContext,也許在後臺代碼,如:

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

您正在訪問Count屬性:

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

您可以從像XAML訪問在DataArray上,憑藉DataContext屬性。如果你想使用數組作爲源的元素支持的集合

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

<ItemsControl ItemsSource="{Binding}" />

如果你想要一個特定數組元素,你可以指定一個指數

沒有綁定表達式的參數直接訪問DataContext,在這種情況下,是一個數組。

希望有幫助!

+0

好吧,我已經拿起你的例子,並試用它們,它開始對我有意義。但現在,想象一下,如果不是一個數組,而是一個DataTable。想象一下,我已經加載了一個DataTable,只包含一個來自數據庫表中的列,並且我希望將該列的所有值作爲ComboBox中的項目,我如何在ComboBox中引用它以獲取單元格中的所有值? – Miguel 2011-03-25 20:09:51

+0

如何: rrhartjr 2011-03-26 16:39:55

+0

不,我不能從列中獲取比賽,它會在組合框中顯示這個」System.Data.Row「。認爲解決方案是將值從DataTable傳遞到字符串數組,然後將它傳遞給DataContext。好吧,這適用於ComboBox,但不適用於DataGridComboBox。 – Miguel 2011-03-27 00:09:53