【问题标题】:Unfounded compilation error in VisualStudio 2012Visual Studio 2012 中的毫无根据的编译错误
【发布时间】:2013-09-24 17:02:35
【问题描述】:

Visual Studio 的 C# 编译器提示一个没有基础的错误: “'ItemSelection' 没有重载匹配 MainPage.xaml 中的委托 'OnItemSelected'” (或者我是盲人,看不到错误)尽管出现了错误,但可以编译早期的项目,但现在没有(奇怪的是)。 感谢您的帮助。

//MainPage.xaml
<ListBox.ItemTemplate>
    <DataTemplate>
        <local:WordBlock   Word="{Binding}" OnSlideOccured="OnSlide"  OnItemSelection="ItemSelection"/>
    </DataTemplate>
</ListBox.ItemTemplate>
//MainPage.xaml.cs
private void ItemSelection(string word)
{
    ToSearch = word;
    (Panorama.Items[0] as PanoramaItem).Visibility = Visibility.Collapsed;
    Panorama.SetValue(Panorama.SelectedItemProperty, Panorama.Items[0]);
    Panorama.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
    (Panorama.Items[0] as PanoramaItem).Visibility = Visibility.Visible;
}
//WordBlock.xaml.cs
public delegate void OnItemSelected(string word);
public event OnItemSelected OnItemSelection;

【问题讨论】:

  • 如果以前出现错误但仍在编译,这可能意味着此错误只是设计人员的错误(不会阻止应用程序构建),编译后您应该检查输出windows,如果此错误实际上出现在那里(设计器错误不会出现在那里)并且是否有任何其他错误
  • 但是现在根本没有编译。代码是否适合您?

标签: c# xaml windows-phone-7 visual-studio-2012


【解决方案1】:

显然,xaml 中使用的事件需要对象类型的第一个参数。 将委托更改为:

public delegate void OnItemSelected(object sender,string word);

和处理程序:

private void ItemSelection(object sender,string word)

似乎修复了编译问题(或者您可以只使用EventHandler&lt;string&gt; 作为事件类型)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2014-09-13
    • 2015-04-12
    • 1970-01-01
    • 2014-09-15
    相关资源
    最近更新 更多