为什么我不能在WPF中的主窗口以外的任何函数中访问AutoCompleteBox?

时间:2010-12-20 15:46:34

标签: wpf autocomplete

我正在尝试

codebox.ItemsSource = codesList;
codebox.PopulateComplete();

来自我创建的Populating事件,我收到了错误

  

“名称'codebox'在当前上下文中不存在'

当我刚刚从MainWindow填充它时,这工作正常。谁知道我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

这看起来是因为codebox在声明Populating事件处理程序的范围内不可见。当Populating事件处理程序位于MainWindow内时,codebox控件对该代码“可见”。有关详细信息,请参阅here

您的Populating事件处理程序在哪里声明了?

另请注意,sender事件中的Populating参数应该是对codebox的引用。您可以简单地将其转换为AutoCompleteBox,它应该可以正常工作,例如:

private void Codebox_Populating(object sender, PopulatingEventArgs e)
{ 
    AutoCompleteBox _codebox = sender as AutoCompleteBox;

    // Use _codebox here instead of codebox
}