返回首页

有什么故事?
你要到一个位图图像转换为枚举值。 这很简单,这里有一个解决方案
一般你只需创建一个新的,其中有一些自定义代码(如switch-case语句)枚举值转换的相关图片。 有一个更好的解决方案?
有多少次你写的这一种转换器,那种需要一个值,并将其映射到另一个值吗?
好了,没有更多的!
我向你们介绍:DictionaryValueConverter。 A转换器,可以让你定义一个键 - 值对的集合,并为你做的映射。 所以,我怎么能使用这种转换器吗?
下面的代码,这个转换提供了一个常见的​​用法。在这里,我三个枚举值映射到三个不同的位图图像。在值属性的每个值是图片:这是由它的x映射的另一个重点。

<converters:DictionaryValueConverter x:Key="propertyTypeToImage">



    <converters:DictionaryValueConverter.Values>



        <BitmapImage x:Key="{x:Static local:PropertyType.Name}"



                     UriSource="Name.png" />



        <BitmapImage x:Key="{x:Static local:PropertyType.Age}"



                     UriSource="Age.png" />



        <BitmapImage x:Key="{x:Static local:PropertyType.Phone}"



                     UriSource="Phone.png" />



    </converters:DictionaryValueConverter.Values>



</converters:DictionaryValueConverter>
这是太酷了,我可以用它转换布尔能见度?
嗯,yes和no。
从理论上讲,它会工作。有没有阻止它的代码。 & #160;
实际上,你需要一种方式来指定的"真实的吗?"和"虚假?布尔值作为键。
不幸的是,2006年的XAML不允许X:主要有复杂的值(使用{A})。这是定于2009年在XAML中,但WPF不支持它。
若要围绕它你可以定义为"真正的和吗?"假常数的值,并使用X:??静态的标记扩展提供了钥匙。
例如: {C}
<converters:DictionaryValueConverter x:Key="booleanToVisibilityConverter">



    <converters:DictionaryValueConverter.Values>



        <Visibility x:Key="{x:Static local:BooleanValues.True}">Visible</Visibility>



        <Visibility x:Key="{x:Static local:BooleanValues.False}">Collapsed</Visibility>



    </converters:DictionaryValueConverter.Values>



</converters:DictionaryValueConverter>
因此,它是怎样实现的呢?
像这样: {体C3}
,你可以下载一个演示应用程序{A2}。
这是现在,阿里克Poznanski。阿里克Poznanski

回答

评论会员: 时间:2
W