2010-05-22 54 views
0

嗨結合觀察到的集合在代碼隱藏我怎麼綁定到此的ObservableCollection如何從XAML

(MainPage.xaml.cs中)

公衆的ObservableCollection標籤=新的ObservableCollection();

in xaml?我試過

(MainPage.xaml中)

但是,如果沒有對XAML任何運氣

回答

1

一個常見的模式是設置一個DataContext在您加載事件,假設你想將它綁定到TabControl稱爲tabs_control您的網頁上:

public MainPage() 
{ 
    InitializeComponent(); 
    Loaded += OnLoaded; 
} 

protected void OnLoaded(object sender, RoutedEventArgs e) 
{ 
    //Initialize tabs collection 
    tab_control.ItemsSource = tabs; 
} 

顯然,你應該替代實際控制你要綁定。

編輯

您的意見基地,你可以做的就是設置是數據上下文,那麼你的XAML綁定應該工作的控制。所以不是上面你可以這樣做:

protected void OnLoaded(obejct sender, RoutedEventArgs e) 
{ 
    this.DataContext = this; 
} 

然後在XAML你可以這樣做:

<TabControl ItemsSource={Binding tabs} ... /> 
+0

謝謝 - 我只是認爲這是在xaml中做到這一點的最佳做法,但我認爲我會用代碼隱藏itemssource綁定。 – Jakob 2010-05-22 17:47:06

0

使用WPF的綁定語法。

<YourControl ItemSource="{Binding tabs} /> 

您還需要設置上層控制(網格,帆布等)的DataContext的是擁有該標籤集合(類型中的情況下,你沒有重命名你的窗口類的類型,將是窗口1

因此,例如,合併,與上面的XAML片段:

<Grid DataContext="Window1"> 
.... 
.... 
     <YourControl ItemSource="{Binding tabs} /> 
.... 
.... 
    </Grid> 
+0

對不起,不知道它得到了過濾掉我的XAML。這是我試過的,但沒有顯示正確的東西。奇怪的是,如果我從代碼隱藏綁定。 tabcontrol.itemssource = tabs; 它工作正常。儘管如此,我不喜歡綁定在代碼隱藏 – Jakob 2010-05-22 17:39:47