2010-05-15 95 views
2

我裏面的DataTemplate定義了以下AutoCompleteBox:綁定AutoCompleteBox裏面的DataTemplate

<Window.Resources> 
    <DataTemplate x:key="PaneTitleTemplate"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
     </Grid.ColumnDefinition> 
     <ContentPresenter Content="{Binding}" /> 
     <toolkit:AutoCompleteBox x:Name="InsertBox" ItemsSource="{???}" /> 
    </Grid> 
    </DataTemplate> 
</Window.Resources> 
... 
<radRock:RadPane x:Name="pane1" TitleTemplate="{StaticResource PaneTitleTemplate}"/> 

現在我想用一個字符串列表來填補它,但我不知道哪個綁定我應該使用。字符串列表是Window中的一個實例變量。我該怎麼辦?

回答

1

問題的一部分是什麼是您的DataContext。如果它是窗口本身或者是其他某個對象。如果它是Window,那麼你不需要在綁定中指定它,如果它是其他對象,那麼你必須指定你使用Window作爲綁定源。我想你想的暴食如下(你可以刪除的ElementName如果窗口DataContext的):

ItemsSource="{Binding StringListName, ElementName=WindowName}" 

顯然與他們實際上在你的窗口名稱替換StringListName和WindowName。

+0

我不熟悉DataContext的概念,但我嘗試過{Binding StringListName,ElementName = MainWindow},它仍然不起作用。 StringListName是MainWindow.xaml.cs的公共成員。如果我手動處理Loaded事件並分配ItemsSource,它就可以工作。 – Thiago 2010-05-16 02:01:47

+0

沒關係,通過調試正確無誤,你是對的。 – Thiago 2010-05-16 03:58:46