我正在尝试为我的一个用户控件制作规则列表。列表包含自定义类型+
。我正在使用List<StringInputRule>
来进行数据绑定。
我正在尝试在xaml中为控件设置规则:
DependancyProperty
用于控件的依赖属性的c#代码:
<controlsDefault:DateEditWithStringInput>
<controlsDefault:DateEditWithStringInput.Rules>
<x:Array Type="controlsDefault:StringInputRule" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<controlsDefault:StringInputRule Key="T" Amount="1" Unit="Day"/>
<controlsDefault:StringInputRule Key="W" Amount="1" Unit="Week"/>
<controlsDefault:StringInputRule Key="M" Amount="1" Unit="Month"/>
</x:Array>
</controlsDefault:DateEditWithStringInput.Rules>
</controlsDefault:DateEditWithStringInput>
因此,以下方法不会传递任何值,但它会编译。我已经读过,泛型类型可以在xaml中从2009版本4.0开始初始化,但我可能没有找到一个例子。
我的问题:如何在xaml中定义通用列表?
编辑:至今仍无法解决问题。
WorkAround (正如SzabolcsDézsi指出的那样):how use List<T> within xaml?
答案 0 :(得分:0)
看起来像这样:
<controlsDefault:DateEditWithStringInput.Rules>
<generic:List x:TypeArguments="controlsDefault:StringInputRule">
<controlsDefault:StringInputRule Key="T" Amount="1" Unit="Day"/>
<controlsDefault:StringInputRule Key="W" Amount="1" Unit="Week"/>
<controlsDefault:StringInputRule Key="M" Amount="1" Unit="Month"/>
</generic:List>
</controlsDefault:DateEditWithStringInput.Rules>
x:TypeArguments
是XAML 2009的一项功能。遗憾的是,在编译的XAML中不支持它,因此您无法在WPF应用程序中使用它。阅读更多here,here和here。