Uwp 为什么我的事件处理程序被认为没有引用?

Uwp 为什么我的事件处理程序被认为没有引用?,uwp,reference,Uwp,Reference,我为组合框的dropDownClosed事件编写了一个事件处理程序: …但它显示“0引用”: 为什么会这样?按钮单击事件确实显示1个引用…很可能是因为由于某种原因没有为其生成支持字段。这(生成的*.g.cs文件中的backing字段)是对事件处理程序的引用的来源 您没有在XAML标记中为组合框元素分配x:Name,或者该元素是模板的一部分,而不是部分页面类本身的一部分 以以下ItemsControl为例: <ItemsControl> <ItemsControl.I

我为组合框的dropDownClosed事件编写了一个事件处理程序:

…但它显示“0引用”:


为什么会这样?按钮单击事件确实显示1个引用…

很可能是因为由于某种原因没有为其生成支持字段。这(生成的
*.g.cs
文件中的backing字段)是对事件处理程序的引用的来源

您没有在XAML标记中为
组合框
元素分配
x:Name
,或者该元素是模板的一部分,而不是部分页面类本身的一部分

以以下
ItemsControl
为例:

<ItemsControl>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ComboBox x:Name="cmb" DropDownClosed="cmb_DropDownClosed" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>


由于
组合框
属于
数据模板
,因此在定义
项控件
的页面后面的代码中将不会为其生成任何支持字段。这也是为什么您不能直接使用隐藏代码中的名称(“cmb”)访问组合框的原因。

我不知道为什么,但现在它确实显示了1个引用-尽管我没有更改与该事件处理程序相关的任何内容。它确实有一个xname:,如果你把
组合框
放在页面本身,并给它一个
x:Name
,你迟早会看到一个引用。好吧,但为什么它不是立即出现的呢?