C# 在XAML中绑定静态泛型类

C# 在XAML中绑定静态泛型类,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,我正在尝试实现本文中找到的MenuExtension类的通用版本:。MenuExtension类在明确定义相关MenuFlyoutItem类型时工作正常,但是,我希望能够将该类用于MenuFlyoutItems、RadioMenuFlyoutItems等的列表,而不必为每种类型定义版本 到目前为止,我有一个Romasz的MenuExtension的通用版本 公共静态类MenuExtension,其中T:MenuFlyoutItemBase { 公共静态列表GetMyItems(Dependenc

我正在尝试实现本文中找到的MenuExtension类的通用版本:。MenuExtension类在明确定义相关MenuFlyoutItem类型时工作正常,但是,我希望能够将该类用于MenuFlyoutItems、RadioMenuFlyoutItems等的列表,而不必为每种类型定义版本

到目前为止,我有一个Romasz的MenuExtension的通用版本

公共静态类MenuExtension,其中T:MenuFlyoutItemBase
{
公共静态列表GetMyItems(DependencyObject obj)
{return(List)obj.GetValue(MyItemsProperty);}
公共静态无效SetMyItems(DependencyObject对象,列表值)
{obj.SetValue(MyItemsProperty,value);}
公共静态只读从属属性MyItemsProperty=
DependencyProperty.Register(“MyItems”)、typeof(列表)、typeof(MenuFlyUtiItemExtension),
新属性元数据(新列表(),(发件人,e)=>
{
Debug.WriteLine(“填充集合”);
var menu=发送方作为MENUFLYOUT子项;
menu.Items.Clear();
foreach(e.NewValue中的var项作为列表)菜单.Items.Add(项);
}));
}
下面是使用它的XAML代码(在使用MenuExtension的原始版本时有效)


我不知道
local:MenuExtension.MyItems
在这种上下文中是如何工作的,所以这很可能是它的一部分

为了以防万一,这里是获取菜单项的C#函数:

static class GradeWeightsFlyoutItems
{
公共静态列表GetMenuItems(等级)
{
返回等级。权重。选择(权重=>
{
var弹出按钮=新菜单使用项
{
Text=weight.Name,
};
//为了简单起见,这里省略了其他代码
返回弹出按钮;
}).ToList();
}
}

恐怕XAML中不支持泛型:


如果您希望能够将附加属性设置为不同类型的集合和序列,可以将
List
更改为
IEnumerable

在XAML中不支持的泛型可以理解为什么我无法让它们工作。谢谢