我有枚举
public enum DocumentTypes
{
First, Second, Third, Fourth
}
如何将enum
的值传递给<sys:Enum></sys:Enum>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1.Converters"
xmlns:enums="clr-namespace:WpfApplication1.Enums"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
<Label Content="Test2">
<Label.Visibility>
<MultiBinding Converter="{StaticResource Converter}">
<MultiBinding.ConverterParameter>
<x:Array Type="{x:Type sys:Enum}">
<sys:Enum></sys:Enum>
</x:Array>
</MultiBinding.ConverterParameter>
<Binding ElementName="First" Path="IsChecked" />
<Binding ElementName="Second" Path="IsChecked" />
<Binding ElementName="Third" Path="IsChecked" />
<Binding ElementName="Fourth" Path="IsChecked" />
</MultiBinding>
</Label.Visibility>
</Label>
答案 0 :(得分:3)
这样做:
projects.id
答案 1 :(得分:0)
您可以将可绑定属性添加到您的datacontext,如:
public IEnumerable DocumentTypesList
{
get
{
return Enum.GetVaues(typeof(DocumentTypes));
}
}
通过以下方式绑定到它:
<MultiBinding.ConverterParameter>
<Binding Path="DocumentTypesList">
</MultiBinding.ConverterParameter>
这样,如果你的枚举被改变了,你就不必改变它的任何XAML表示。
或者如果转换器始终使用此显式枚举,则可以直接在其中引用它。
答案 2 :(得分:0)
试试这个:
<MultiBinding.ConverterParameter>
<x:Array Type="{x:Type sys:Enum}">
<x:Static Member="sys:Enum:YourEnumType.YourEnumValue1" />
<x:Static Member="sys:Enum:YourEnumType.YourEnumValue2" />
</x:Array>
</MultiBinding.ConverterParameter>
在我的项目中,我添加了我的枚举类型命名空间,如:
xmlns:mod="clr-namespace:MyProject.Modal;assembly=MyProject.Modal"
其中MyProject.Modal是我的枚举定义的命名空间。这样,如果您有一个枚举名称&#34; MyEnum&#34;,那么您可以这样做:
<MultiBinding.ConverterParameter>
<x:Array Type="{x:Type mod:MyEnum}">
<x:Static Member="mod:MyEnum.Value1" />
<x:Static Member="mod:MyEnum.Value2" />
</x:Array>
</MultiBinding.ConverterParameter>