在我的 WPF 应用程序中,我有一个 UserControl,其中包含两个 AutoCompleteBox 控件。此 UserControl 可以在一个页面上出现多次。问题是在 AutoCompleteBox 中键入时,选择的下拉菜单没有出现。我正在处理 Populating 事件,如果我在其中放置一个断点并逐步执行,我可以清楚地看到 ItemsSource 包含其中的项目,所以它看起来正在工作,只是我实际上没有看到下拉菜单菜单。我遵循了http://msdn.microsoft.com/en-us/library/dd795156%28v=VS.95%29.aspx上的代码示例。我在这里想念什么?
XAML:
<my:AutoCompleteBox Name="acboxCoauthorName" Width="175" Unloaded="Control_Unloaded" MinimumPopulateDelay="100" Populating="acboxCoauthorName_Populating">
<my:AutoCompleteBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=LastOrCompanyName}"/>
</DataTemplate>
</my:AutoCompleteBox.ItemTemplate>
</my:AutoCompleteBox>
C#:
private void acboxCoauthorName_Populating(object sender, PopulatingEventArgs e)
{
e.Cancel = true;
var query = from a in _context.Authors
where a.Display_Name.StartsWith(acboxCoauthorName.Text)
select a;
acboxCoauthorName.ItemsSource = ((ObjectQuery) query).Execute(MergeOption.OverwriteChanges);
acboxCoauthorName.PopulateComplete();
}
当我们这样做时,我似乎也无法对 datacontext 中的对象进行数据绑定。我尝试了上面的数据绑定方法,或者我选择了更简单的方法:
<my:AutoCompleteBox Name="acboxCoauthorName" Width="175" MinimumPopulateDelay="100" Populating="acboxCoauthorName_Populating" Text="{Binding Path=LastOrCompanyName}">
这些都不起作用。有任何想法吗?
编辑:不要介意第二部分;我将错误的对象设置为控件的 DataContext。
谢谢。