尝试使用this问题的解决方案给我一个奇怪的问题。 (为方便起见,这里复制)
这是针对ListView
吞下右键单击事件并阻止AppBar打开的问题的解决方案 - 继承ListView
并覆盖OnRightTapped
ListViewItem
事件的类1}}:
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:重新提出问题以消除无关的问题。我也改变了标题以反映真正的问题。
答案 0 :(得分:9)
我使用Name
但应该使用x:Name
。显然,自定义控件和用户控件需要在后面的代码中使用x:Name
而不是Name
。
有关差异的更多信息:
In WPF, what are the differences between the x:Name and Name attributes?