4

尝试使用这个问题的解决方案给我一个奇怪的问题。(为方便起见,在此复制)

这是解决ListView吞下右键单击事件并阻止 AppBar 打开的问题的解决方案 - 一个继承ListView并覆盖以下OnRightTapped事件的类ListViewItem

public class MyListView : ListView
{
    protected override DependencyObject GetContainerForItemOverride()
    {
        return new MyListViewItem();
    }
}

public class MyListViewItem : ListViewItem
{
    protected override void OnRightTapped(Windows.UI.Xaml.Input.RightTappedRoutedEventArgs e)
    {
        base.OnRightTapped(e);
        e.Handled = false; // Stop 'swallowing' the event
    }
}

<CustomControls:MyListView
    x:Name="ItemsList"
    ...
    SelectionMode="Single"
    RightTapped="MyListView_RightTapped">
</CustomControls:MyListView>

我已经按照描述在一个名为 CustomControls 的新命名空间中实现了指定的自定义控件。我已将该命名空间添加到 MainPage.xaml

xmlns:CustomControls="using:CustomControls"

然后,当我尝试在后面的代码中引用“ItemsList”时,出现编译错误

The name 'ItemsList' does not exist in the current context

我尝试过构建、重建、清理解决方案、关闭和重新打开解决方案、将类放在主项目命名空间下,但都无济于事。

总而言之,MainPage.cs 在 MainPage.xaml 上看不到自定义控件

更新 2:改写问题以删除不相关的问题。我还更改了标题以反映真正的问题。

4

1 回答 1

9

我正在使用Name但应该一直在使用x:Name. 显然自定义控件和用户控件需要使用x:Name而不是Name在后面的代码中看到。

有关此处差异的更多信息:

在 WPF 中,x:Name 和 Name 属性有什么区别?

于 2012-10-04T10:52:45.577 回答