2010-05-15 43 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